Eines der Themen, die in regelmäßigen Abständen in Diskussionen auftaucht, wie es bezieht sich auf Wordpress die Idee von Wordpress und MVC ist.
Aber die Sache ist, dass MVC nicht der Königsweg der Web-Entwicklung ist, dass wir versuchen, es zu machen, zu sein. Ja, es ist ein fantastisches Designmuster, und ich persönlich denke, dass es wie ein Handschuh zum Webanwendungsmodell passt, aber nicht jedes Framework oder diese Plattform implementiert dieses Designmuster.
Typischer Fall: Wordpress ist nicht MVC.
Und das ist okay. Ich denke, wir müssen den Wunsch aufgeben, es in unsere Projekte beiseite zu schieben, besonders wenn das Muster WordPress nicht nur ausreicht, sondern auch gut funktioniert, wenn es richtig eingesetzt wird.
„Aber ich liebe MVC!“
ich auch! Tatsächlich habe ich das letzte Jahr an einem Projekt gearbeitet, das die MVC-Architektur mehr oder weniger nachahmt. Ein High-Level-Beispiel für MVC.
A High-Level Beispiel MVC.
Zum Beispiel:
Views were implemented using templates
Controllers were implemented by a combination of using function names like create, read, update, destroy, delete, and so on (even though these functions were hooked into the WordPress API
Models were functions also were called to validate and verify data prior to serializing the data. Again, this required that certain functions be hooked into WordPress to achieve the desired result.
Schließlich wird ein Satz von Regeln für das Umschreiben gab die Anwendung einen sauberen Satz von vorhersagbaren URLs im Format/people/update/1 oder/people/alle. Welches Muster implementiert WordPress?
WordPress implementiert die ereignisgesteuerte Architektur (von denen es mehrere Variationen gibt, wie das Observer Pattern).
Kurz gesagt, kann man konzeptionell daran denken wie die folgenden:
Things happen when WordPress is processing information.
You can register your own function to fire when these things happen.
Nicht zu kompliziert, oder? ein hochrangiges Beispiel für ereignisgesteuerte Muster ein hochrangiges Beispiel für ereignisgesteuerte Muster
Wenn Sie beginnen, in Bezug auf das Paradigma zu denken, in der er arbeitet, anstatt zu versuchen es die Arbeit zu bilden So wie du willst, dass es funktioniert, es ist befreiend. Es hilft, Probleme viel einfacher zu lösen.
Die Quintessenz ist: WordPress implementiert das ereignisgesteuerte Entwurfsmuster, also selbst wenn Sie MVC implementieren, müssen Sie immer noch das Hook-System verwenden.
Wenn Sie nicht vorsichtig sind, können Sie am Ende versuchen, die perfekte Architektur zu erstellen, ohne Ihre Arbeit wirklich zu erledigen, und am Ende finden Sie sich so hoch in der Atmosphäre der Software, die Sie effektiv zu einer Architektur geworden sind Astronaut. Sie sagen also, Designmuster zu vermeiden?
Überhaupt nicht! Design Patterns erfüllen einen Zweck, weil sie vor allem Lösungen für zuvor und häufig gelöste Probleme bieten. Benutze sie!
Aber der Punkt, den ich versuche zu machen, ist, dass wir nicht versuchen müssen, die Dinge zum Muster zu zwingen, nur weil wir das Muster mögen. Das ist nicht ihre Absicht. Nutzen Sie stattdessen das primäre Muster, das Ihre Plattform der Wahl implementiert - in unserem Fall handelt es sich um ein ereignisgesteuertes Muster - und implementieren Sie dann Muster, wo sie passen (z. B. die Abhängigkeitsinjektion oder etwas Ähnliches).
Ansonsten ist es, als ob man versucht, den Fuß in einen Handschuh zu stecken.
Mit freundlicher Genehmigung (und total kopiert: P) von: http://tommcfarlin.com/wordpress-and-mvc/
MVC ist ein arquitectural Design-Muster und unabhängig von der Art der Sofware. Jede Blogging-Plattform, jedes CMS oder Entwicklungs-Framework kann MVC sein, abhängig davon, wie es funktioniert. – eKek0
eKek0, dachte so. Aber hey, es sollte einige Beispiele für CMS und Frameworks geben, die nicht MVC-konform sind, d. H. Ihre Kernarchitektur ist überhaupt nicht MVC. Kannst du an etwas denken? – kovshenin