Einen Shortcode mit MVC erstellen

So wie WordPress mit der Darstellungslogik umgeht hat es Rasmus Lerdorf vor Jahren auch vorgesehen. Allerdings hinkt es damit seiner Zeit hinterher, während viel effektivere Entwurfsmuster wie das MVC für mehr produktivität und schöneren Code sorgt.

Viele Plugins und deren Entwickler zeigen in Ihrem Code, dass immernoch nach altbackenen Methoden programmiert wird. Das Resultat sind Plugins die in Ihrem alter immer schwerer Pflegbar sind und Bugfixes teilweise sehr lange dauern. Dem soll mit diesem Beitrag entgegengewirkt werden, indem mit MVC saubere Plugins geliefert werden und so eine Struktur vorliegt, bei der neue Kundenwünsche und Bugs schneller abgearbeitet werden können.

Ein Shortcode mit MVC erstellen

Zunächst gehen wir in das Plugin, welches alle Kundenwünsche enthält und speziell für diese WP-Instanz gedacht ist, und legen dort den Ordner „shortcodes“ an. In diesem neuen Ordner wird ein die Datei „show_foo.php“ erstellt mit dem folgenden Inhalt:

Wie zu sehen ist, wird ein Shortcode „show_foo“ angelegt, welcher die Funktion „show_foo_shortcode“ nutzt. Diese wiederrum behandelt ein paar Logiken (dieser Bereich wird bei MVC in dem Controller gemacht) und sammelt alle notwendigen Daten für die Ausgabe (was per Model gemacht wird). Zum Ende wird dann an in ein Template (hier eine phtml-Datei) weitergegeben, die so aussehen könnte:

In dieser Datei dominiert ganz klar das HTML, was eine schnelle Übersicht ermöglicht. Viel zu häufig werden Template innerhalb eines Strings zusammengebaut, was garnicht zu Vertreten ist, wenn die Vorteile von diesem MVC einmal klar werden:

  • Überschaubarer Code
    Der Code in der PHTML entspricht dem in der Browserausgabe und es kann schneller Verglichen werden
  • Wartbar
    Wir brauchen nicht den ganzen Code lesen, um hier HTML-Elemente hinzuzufügen
  • Wiederverwendbar
    Wenn der Kunde etwas ähnliches an anderer Stelle haben möchte, dann haben wir hier die Designvorlage. Wir ändern nur die Daten, welche rein gehen. Beispiel: Eine Liste soll an anderer Stelle nochmal als Tabelle vorhanden sein; dann holt sich die Funktion eine andere PHTML für die Ausgabe (ein one-liner).
  • Seperation of Concern
    Unser Designer kannn zeitgleich mit einem Entwickler an einer Sache arbeiten ohne sich in die Quere zu kommen.

Der einzige Nachteil ist ein Mehraufwand gleich zu Anfang, welcher sich erschlagen lässt sobald das eigene Framework hierzu gefunden wurde, wie zum Beispiel OOWP.

Code-Template in phpStorm

In phpStorm habe ich mir diese Vorlage in dieses File-Template angelegt, damit ich immer und sehr schnell einen neuen Shortcode erstellen kann:

Einfach mal in den Einstellungen nach „File and Code Templates“ suchen und dort ein neues mit dem Namen „WordPress Shortcode“ erstellen. Diese Vorlage ist über ein Rechtsklick auf ein Ordner nun über „New > WordPress Shortcode“ verfügbar. Bei dem Anlegen ist der Name wichtig, welcher direkt so wie der Shortcode selbst lauten sollte, denn die Vorlage von oben füllt automagisch den Namen des Shortcodes überall ein. Das einzige per Hand hinzukommen muss ist die „shortcode_name.phtml“-Datei in der sich das HTML zur Ausgabe befindet.

MVC alt und bewährt

Seit 1979 gibt es dieses Konzept, es wird nahezu überall verwendet und hat immernoch nicht seinen Weg in WordPress gefunden. Das ist nicht nur schade sondern auch kurios, denn es trägt zum produktiven Arbeiten maßgeblich bei. Mittlerweile etablieren sich sogar Nachkömmlinge wie das Model-View-Presenter oder Model-View-Adapter, welche von den vielen Möglichkeiten sich als die Gangbaren etablieren konnten und als nächstes Einzug in die Programmierwelt erhalten könnten. Da wirkt das bereits 11 Jahre alte WordPress, als wäre es noch in den Kinderschuhen.

Hinterlasse einen Kommentar

*

Nächster ArtikelAutomatische Zeilenumbrüche verhindern