Ich möchte ganz klar sagen, dass dies nicht die Absicht hat, die Diskussion über funktionale / prozedurale Programmierung im Vergleich zu objektorientierter Programmierung wiederzubeleben. Darüber wird auf WPSE und im ganzen Netz viel gesagt.
Aber vor einiger Zeit habe ich einige Diskussionen über die Programmiergrundlagen von Wordpress gelesen und etwas gelesen - ich muss es umformulieren, weil ich es damals leider nicht mit einem Lesezeichen versehen habe - ungefähr so:
Eines der attraktiven Dinge bei der Verwendung von Wordpress ist, dass sie zusätzlich auf dem ereignisgesteuerten Paradigma der Programmierung basieren .
Von dem, was ich verstehe , ereignisgesteuerte Programmierung in diesem Zusammenhang ist ziemlich viel Synonym zu Signal oder Datenflussprogrammierung . Darüber hinaus - wahrscheinlich zu stark vereinfacht - ist das Hauptmerkmal möglicherweise die Verwendung von Haken - Aktionen und Filtern - als Dreh- und Angelpunkt für die Methode.
So weit, ist es gut. Scheint einfach zu sein, aber ich komme nicht aus der Informatik, daher bin ich mir ziemlich sicher, dass noch mehr zu sagen ist. Ich bin wirklich an einigen Beiträgen interessiert, wie zum Beispiel: Worum geht es wirklich oder wird das oben Gesagte so ziemlich gesagt? Ist es ein zusätzliches Paradigma? Wie verhält es sich zu den anderen? Ist es ein Kernprinzip oder nur eine Ergänzung?
Diese sind einfach unglaublich und verstoßen eindeutig gegen die Regeln, indem sie nicht eine einzige Frage stellen, die eine eindeutige Antwort hat, aber vielleicht wird dies einmal vergeben.
quelle
Wordpress System
Aspekts vonevent-driven programming
interpretiert werden alsparadigm of expansibility
. Ich würde in erster Linie sagen, dass andere den WordPress-Kern nutzen sollen. Und wenn man kein Plugin mit "wie ich will" -Paradigma schreibt, sondern dem folgtparadigm of expansibility
, kann es als Grundregel verwendet werden, um Plugins / Themes auch erweiterbar zu machen.Ich denke, dass mit ereignisgesteuerten Paradigmen , die Artikel schreiben, Observer Pattern beabsichtigt .
Und das in WordPress wird über die Plugins Api abgewickelt . Ich glaube nicht, dass es noch viel mehr zu sagen gibt.
quelle
Plugins API
, dass es in diesem Zusammenhang bemerkenswert sein könnte, auf den Unterschied zwischenFilters
und hinzuweisenActions
.add_filter('the_title', 'test'); function test($t) { error_log('foo'); return $t; }
. Es ist vollkommen legal und das Ereignis wird sogar mit einem Filter ausgelöst.@nicolai: Wordpress folgt der Publisher Subscriber- Variante des Observer-Musters ( Event Driven Architecture ).
quelle
Wordpress ist aufgrund der Einschränkungen der Sprache, in der es geschrieben ist, ereignisgesteuert und nicht, weil es in irgendeiner Weise so konzipiert ist.
Die beliebtesten Webserver sind ereignisgesteuert und PHP hat nur sehr wenige Dienstprogramme (keine?), Um sich anders zu verhalten. Da WordPress von PHP abhängt, kann es einfach nichts anderes sein.
Der PHP-Teil von WordPress-Plugins und -Themen OTOH sollte so gestaltet sein, dass er von "Ereignissen" gesteuert wird, die vom Kern "gesendet" werden. JS-Code ist ebenfalls ereignisgesteuert, aber die Ereignisse sind fast nur diejenigen, die von einem tatsächlichen Benutzer ausgelöst werden (obwohl ein Teil des WordPress-JS-Codes ihn ebenfalls abstrahiert und eigene Ereignisse auslöst).
quelle