Warum ist Drupal nicht objektorientiert?

9

Ich habe gerade angefangen, einen Blick in die Dokumente und die Quelle zu werfen (Drupal 6 im Moment) und festgestellt, dass keine Klassen zu sehen sind, sondern nur eine große Anzahl von Funktionen mit Präfix. Ist das praktisch? Hat eine solche Entscheidung einen Hintergrund? Warum?

Jayarjo
quelle
Warum verwenden Sie Drupal 6? Drupal 8 ist unterwegs!
Bilderstürmer

Antworten:

14

Dies wird in der Drupal-Programmierung aus einer objektorientierten Perspektive ziemlich gut erklärt .

Kurz gesagt, Drupal existiert schon viel länger, als Sie OOP in PHP richtig verwenden könnten. Was bedeutet, PHP5 .

Drupal 7 verwendet Klassen an vielen Stellen bereits intern und wird dies wahrscheinlich auch mit Drupal 8 fortsetzen.

Dies ist jedoch ein schrittweiser Prozess, und nicht alles muss eine Klasse sein. Zum Beispiel macht es keinen Sinn, Module zu einer einzigen Klasse zu machen.

Berdir
quelle
Drupal 8 wird sehr OOP sein und viele der Komponenten von Symfony2 einbeziehen. Die APIs für Entwickler werden jedoch weiterhin die abwärtskompatiblen Hooks FTMP sein.
Paul-m
Es wird noch viel mehr OOP geben, und der Punkt über die APIs ist nicht korrekt. Das liegt nur daran, dass die Dinge noch nicht vollständig konvertiert sind. hook_block _ * () wurde gerade durch das Plugin-System ersetzt, zum Beispiel wird sich das Routing ändern, die Konfiguration wird sich ändern, das Entitätssystem hat sich geändert, ...
Berdir
@Berdir Ich bin sehr daran interessiert, wie ich OOP PHP in Drupal 7 nutzen kann, da ich jetzt wahrscheinlich nicht auf Drupal 8 umsteigen werde. Gibt es einige Beispiele?
Jerome
5

Drupal wurde erstellt, bevor oo in PHP5 besser wurde. Objekte werden in jeder Version häufiger in Drupal verwendet, aber Sie müssen eine vollständige Neufassung ausgleichen und neue Funktionen hinzufügen.

Lucy
quelle