Antworten:
Ich kann mit ungefähr 99,9999% iger Sicherheit sagen, dass WordPress in der zukünftigen Version niemals ganz OOP werden wird, nicht zuletzt, dass das Thema immer wieder auf der Liste der WP-Hacker auftaucht und die Mitglieder des Kernteams kein Interesse daran bekundet haben dies zu tun.
Wenn ich mir meine persönlichen Erfahrungen mit dem Programmieren und Unterrichten von OOP ab 1990 anschaue, stimme ich dem Kernteam zu und denke, dass eine vollständige OOP ein Fehler wäre. Obwohl ich einmal ein OOP-Fanatiker war und dachte, OOP sei ein Allheilmittel, bin ich seitdem zu der Überzeugung gelangt, dass es in einigen Kontexten seinen Wert hat, in anderen jedoch im Weg steht.
Eines der größten Probleme, das ich bei OOP festgestellt habe, ist, dass der Entwickler gezwungen ist, die Struktur einzubacken, lange bevor der Entwickler tatsächlich versteht, wie diese Struktur aussehen sollte, was dann zu dem fragilen Problem der Basisklasse führt .
Natürlich macht OOP für ausgewählte Aspekte von WordPress sehr viel Sinn, und wenn Sie sich mit Core befassen, werden Sie solche Klassen finden. Widget
, List_Tables
(in 3.1) usw.
An diesem Punkt bin ich froh, mit WordPress in einem größtenteils nicht-OOP Paradigma zu arbeiten und denke, wenn es reines OOP gewesen wäre, hätte WordPress niemals das Folgende erreicht. Warum? Weil OOP die Messlatte für angehende WordPress-Themes und Plugin-Entwickler höher gelegt hätte und wahrscheinlich zu einer Anwendung geführt hätte, die nicht flexibel genug gewesen wäre, um sich zu entwickeln, da das Kernteam in der Vergangenheit mehr über die Bedürfnisse seiner Benutzer erfahren hätte 6 Jahre.
FWIW.
Viele WP-Komponenten werden mit jedem neuen Release in OOP-Code umgeschrieben, und neue Komponenten nutzen diesen Code (zum Beispiel das WP_Customizer
Ding). Wenn Sie jedoch fragen, ob WP seine Architektur in eine vollständig objektorientierte ändern soll, gibt es derzeit keine Informationen, die auf eine solche hindeuten.
Ich würde nicht so weit gehen zu sagen, dass es niemals passieren wird, aber es ist unwahrscheinlich, dass es in naher Zukunft passieren wird, und wahrscheinlich nicht wegen des "Basisklasse" -Problems :)
Erstens hat die Verwendung von Prozedurcode über OOP für eine CMS-Anwendung wie WordPress nur Nachteile, da solche Apps durch Plugins erweitert werden sollen. Das Einfügen einer Mischung aus Funktionen und globalen Variablen macht dies überhaupt nicht einfacher. Zu der Zeit, als WP geschrieben wurde, konnte niemand vorhersagen, was WP werden würde, und viele schlechte Entscheidungen wurden getroffen. Jetzt ist es ziemlich schwer nachzuholen, da die meisten Plugins und Themes nicht mehr richtig funktionieren. Das Implementieren einer riesigen Kompatibilitätsebene, um dies zu vermeiden, würde WP wahrscheinlich verlangsamen und die Entwickler noch mehr verwirren. Denken Sie auch über den Zweck nach - das Leben der Entwickler auf Kosten der Benutzer zu erleichtern?
Wenn es hilft - eine sehr alte Diskussion über wp-Hacker, die aber immer noch relevant für dieses Thema ist, und eine vorgeschlagene Idee der Community, die jetzt als "Plugin-Territorium" markiert ist. Ich habe in letzter Zeit keine anderen Aktivitäten in dieser Richtung bemerkt.