WordPress für die Entwicklung von Webanwendungen Das konzeptionelle Modell

Da die Menschen anfangen, das Potenzial von WordPress als Anwendungsgrundlage und nicht nur als Content-Management-System oder als Blogging-Plattform zu erkennen, konzentriert sich diese Serie darauf, wie WordPress für solche Projekte verwendet werden kann.

Eines der wichtigsten Dinge ist, dass WordPress nicht die endgültige Lösung für das Erstellen von Webanwendungen ist. Tatsächlich denke ich nicht irgendein Fundament oder Rahmen soll sein das endgültige Lösung.

Stattdessen haben wir eine Reihe verschiedener Optionen, die sich alle für bessere Situationen als andere eignen, und WordPress unterscheidet sich nicht. In dieser ganzen Serie werden wir uns immer wieder ansehen, wie Webanwendungen mit WordPress erstellt werden können und welche Situationen sich am besten für die Grundlage eignen. Wir müssen jedoch unsere Diskussion über die Funktionsweise von WordPress fortsetzen, damit wir anfangen können, darüber zu sprechen, wie Anwendungen darüber erstellt werden.

Im vorherigen Artikel haben wir diskutiert, wie viele Frameworks einen MVC-Ansatz für die Entwicklung bieten, wir haben uns jedoch auch das ereignisgesteuerte Modell von WordPress angesehen. In diesem Beitrag werden wir uns eingehender mit dem ereignisgesteuerten Paradigma von WordPress beschäftigen und warum dies wichtig ist.

Die Wahrheit ist, dass viele Menschen mit diesem Paradigma vertraut sind. Sie kennen die Namenskonventionen einfach nicht. Am Ende dieses Artikels sollten wir ein klares Verständnis dafür haben, was ereignisgesteuerte Programmierung ist, wie sie funktioniert, wie sie in WordPress implementiert wird und wie wir darüber nachdenken müssen, wenn wir aus anderen Mustern wie der Modellansicht kommen -Regler.


Ereignisgesteuerte Programmierung

Im letzten Beitrag haben wir die ereignisgesteuerte Programmierung mit folgender Idee zusammengefasst:

Stattdessen arbeitet die ereignisgesteuerte Programmierung von der Prämisse ab, dass "etwas passiert ist". Daher der Name für Aktionen in der WordPress-Sprache (natürlich haben wir auch Filter, aber ich werde diese kurz behandeln).

Und das ist gut für eine funktionierende Definition von Ereignissen, insbesondere auf hoher Ebene. Wenn Sie jedoch einen tieferen Blick darauf werfen möchten, wie dies von einem praktischen Standpunkt aus aussieht - das heißt, wie WordPress es implementiert -, dann ist das Beste, was Sie tun können, zu verstehen Veranstaltungen.

Darüber hinaus ist es wichtig, den Lebenszyklus der WordPress-Seite zu verstehen, wo Ereignisse stattfinden und wie wir als Entwickler daran arbeiten können, eine bestimmte Aufgabe zu erfüllen.


Ereignisse verstehen

Wie bereits erwähnt, ist bei ereignisgesteuerter Programmierung die Idee von Ereignissen einfach das etwas ist passiert. Wir wiederholen das immer wieder, aber was heißt das wirklich??

Im Zusammenhang mit dem Laden einer einzelnen Seite treten folgende Ereignisse auf:

  • JavaScript und Stylesheets werden abgerufen
  • Abfragen werden für die Datenbank ausgeführt, um Daten abzurufen
  • Die Informationen aus der Datenbank werden im Kontext des Markups dargestellt
  • Die Seite wird dem Benutzer angezeigt
  • … und so weiter

Alle diese Ereignisse können als Ereignisse betrachtet werden, aber jedes davon besteht aus einer Reihe kleinerer Ereignisse - das heißt, Sie können es erhalten Ja wirklich detailliert, wann etwas passiert.

Nehmen Sie zum Beispiel die Idee, eine typische, öffentlich zugängliche Anforderung für eine WordPress-basierte Seite zu rendern. Wenn Sie sich das zugehörige Codex-Dokument anschauen, werden Sie feststellen, dass ungefähr 50 Aktionen ausgeführt werden nicht Dazu gehören entweder post- oder seitenbezogene Aktionen.

Jede dieser Aktionen kann als Ereignis betrachtet werden. In der Welt der ereignisgesteuerten Programmierung werden Ereignisse normalerweise so angezeigt, dass sie es uns ermöglichen, sie einzuhaken und Informationen zu manipulieren, bevor sie dem Client zur Verfügung gestellt werden.

Daher der Name für Haken.

In WordPress gibt es Hooks natürlich in zwei Varianten: Aktionen und Filter. Obwohl es sich bei dieser Serie nicht um ein solides Tutorial zu jedem von diesen handelt, ist es das ist Es ist wichtig, den Unterschied zwischen ihnen zu erkennen, wenn sie sich auf die Arbeit mit WordPress beziehen.

Aktionen

Aktionen sind eine Art Hook, der anzeigt, dass etwas passiert ist, und wann Das etwas Wenn wir auftreten, können wir unsere eigene Funktionalität registrieren, sodass wir unseren eigenen Code einfügen können (oder sogar verhindern können, dass bestimmte Dinge passieren)..

Wie ich in meiner Serie über Aktionen und Filter zusammengefasst habe:

Aktionen sind Ereignisse im WordPress-Seitenlebenszyklus, wenn bestimmte Dinge aufgetreten sind - bestimmte Ressourcen werden geladen, bestimmte Funktionen stehen zur Verfügung und je nachdem, wie früh die Aktion stattgefunden hat, müssen noch einige Dinge geladen werden.

Es ist wichtig, die verfügbaren Aktionen zu verstehen, damit Sie wissen, wann der beste Zeitpunkt für ein bestimmtes Ereignis besteht, damit Sie die Leistung der Seite nicht beeinträchtigen und möglicherweise andere Daten beeinträchtigen, die im Downstream-Prozess kommen, oder dass Sie ordnungsgemäß arbeiten Umgang mit den Informationen zum richtigen Zeitpunkt und Ort.

Filter

Filter dagegen filtern eine Art Hook, mit dem wir bestimmte Daten empfangen, bearbeiten und an WordPress zurückgeben können, bevor sie an den Browser gerendert werden.

Für das Beispiel, wenn Sie einen Blick darauf werfen der Inhalt filtern, dann werden Sie feststellen, dass Ihre Funktion den Inhalt erhält, wenn Sie eine Funktion in diese bestimmte Aktion einhaken. Dies bedeutet, dass Sie den Inhalt manipulieren können, indem Sie Informationen einfügen, Informationen daraus entfernen oder ähnliches, bevor Sie sie an WordPress zurückgeben, um sie an den Browser zu rendern.

In ähnlicher Weise habe ich die Filter in meiner Serie zu Aktionen und Filtern wie folgt zusammengefasst:

Filter sind Funktionen, die WordPress an bestimmten Stellen des Seitenlebenszyklus durchläuft. Sie sind in erster Linie dafür verantwortlich, Daten abzufangen, zu verwalten und zurückzugeben, bevor sie an den Browser übertragen oder vom Browser in die Datenbank gespeichert werden.

Mit all dem gesagt, sind Aktionen und Filter beide Arten von Ereignissen, die innerhalb des WordPress-Lebenszyklus auftreten und die es uns ermöglichen Haken und fügen Sie unseren eigenen Code zur Ausführung ein, bevor er an den Browser übertragen wird.

Kurz gesagt ist der Begriff "Hooks" ein allgemeiner Begriff, der sich sowohl auf Aktionen als auch auf Filter bezieht, von denen jede einem anderen Zweck dient.


Analog zu MVC?

Nun, eines der häufigsten Dinge, die ich von Leuten mit einem anderen Hintergrund wie Rails, CakePHP, ASP.NET oder anderen MVC-Frameworks gesehen habe, ist die Zuordnung des konzeptionellen Modells von MVC zu den Ereignissen. angetriebenes Modell von WordPress.

Damit meine ich, dass sie versuchen, im ereignisgesteuerten Paradigma Analogien zu Modellen, Ansichten und Steuerungen zu finden. Zum Beispiel versuchen einige möglicherweise Folgendes zu tun:

  • "Ob Ansichten sind für die Präsentation von Daten gedacht, dann ist es sicherlich das Richtige Vorlagen sind für WordPress. " Ja, bis zu einem gewissen Grad, aber Templates sind auch von verschiedenen Hooks betroffen und rufen bestimmte Funktionen auf.
  • "Ob Haken werden verwendet, um Daten zwischen der Datenbank und den Ansichten zu orchestrieren, dann sind sie wie Controller. " Art, aber sie können auch datenspezifische Logik darstellen, die einem Modell ähnelt, und sie können auch einfach als Helfer zum Formatieren von Informationen verwendet werden, die eher Helfern als tatsächliche Controller ähneln.
  • "Aber wenn die Vorlagen oder Ansichten die Controller oder Hooks aufrufen können, wo bleibt dann das Modell?" Genau gesagt, Sie können Ähnlichkeiten ganz nach Ihren Wünschen rationalisieren, und Sie können einige gute rationalisieren, aber die Wahrheit ist, dass WordPress nicht MVC ist.

Zu diesem Zweck empfehle ich dringend, nicht zu versuchen, über WordPress im Zusammenhang mit einem anderen Muster nachzudenken. Es hat ein eigenes Muster. Denken Sie in diesen Begriffen darüber nach.

Es geht nicht um Nachrüstung!

Kurz gesagt, es ist in Ordnung, aus einem anderen Framework, das ein anderes Designmuster oder ein anderes Paradigma verwendet, zu WordPress zu gelangen, es geht jedoch nicht darum, WordPress an Ihre bisherigen Erfahrungen anzupassen.

Sie können ein Designmuster nicht in ein anderes umrüsten und erwarten qualitativ hochwertige Ergebnisse.

Software funktioniert nicht so.

Stattdessen, genau wie bei anderen Frameworks, auch Sie Muss Stellen Sie sich vor, wie WordPress funktioniert, um Dinge auf und für WordPress richtig aufzubauen. Später in der Serie werden wir einen Blick darauf werfen, warum WordPress eine solide Option für Webanwendungen darstellt, aber zuvor denke ich, dass es wichtig ist, das von WordPress implementierte Muster zu verstehen und wie man es am besten nutzt.


Praktische Beispiele für Ereignisse

Im nächsten Beitrag werden wir uns einige Beispiele ansehen, wie wir uns an die von WordPress bereitgestellten Ereignisse anschließen können. Diese werden sehr einführend sein und die erfahrensten WordPress-Entwickler werden wahrscheinlich bereits viele von ihnen kennen. Es wird jedoch eine Reihe solider Beispiele dafür geben, wie Aktionen und Filter - und damit Ereignisse - in WordPress funktionieren.

Danach setzen wir unsere Diskussion über die Funktionen und Möglichkeiten fort, die WordPress zum Erstellen von Webanwendungen bietet.