dedlfix: + (PHP) Template-Parser/ -Engine und MVC

Beitrag lesen

Hi!

Bitte keine Hin- oder Verweise auf Smarty & Co. Mit solchen "Monstern" mit eigener Syntax möchte ich mich nicht beschäftigen, da sie für meine Zwecke auch der totale Overkill wären. Reines PHP (5 als OOP) wäre mir am liebsten.

Meines erachtens benötigt PHP keine Template Sprache, da es schon eine ist. D.h. die Templates werden in PHP geschrieben und nutzen dort einerseits PHP Syntax und die Objekte, die deine Anwendung zu Verfügung stellt.

Soweit richtig, aber darum geht es hier nicht direkt. Es geht mehr um die Organisation des Projekts als Ganzes. Auf welche Weise konkret die (einzelnen Teil-)Ausgabe(n) erzeugt wird, ist grad nebensächlich.

Alles andere halte ich für unnötigen Lernaufwand (da jede Templatesyntax neu erlernt werden muss) und es bremst die Anwendung.

Mit der Maxime kann man an eine Lösungsfindung herangehen, doch die muss sich nicht zwangsläufig als effektiv herausstellen. Dazu ein kleines, etwas absurdes Beispiel: Bei einem Request soll eine Zahl als Wort ausgegeben werden, also http://example.com/1 soll "eins" ausgeben, .../2 soll "zwei" ergeben und so weiter. Man kann nun zwei Dokumente erstellen, eins das das HTML-Grundgerüst und das Wort "eins" enthält, und das andere mit dem gleichen Grundgerüst aber einer "zwei" drin. Aufgabe gelöst, man muss nichts dazulernen und performant ist es auch. Es ist jedoch sehr unflexibel. Schon bei zwei Zahlen muss man zwei Dokumente bearbeiten, wenn am Grundgerüst etwas geändert werden soll. Je mehr Zahlen es werden, desto größer der Änderungsaufwand. Das Programieren einer Lösung macht das System flexibler, man muss nur noch an einer Stelle das Grundgerüst ändern. Doch dazu muss man eine Programmiersprache lernen und das Erstellen der Ausgabe auf Anforderung hin braucht auch mehr Zeit als das reine Ausliefern einer Datei. Obendrein ist das Gesamtsystem komplexer geworden. Alles hat Eigenschaften, die sich in konkreten Situationen als vorteilhaft oder nachteilhaft bewertet werden können.

Es ist also nicht immer sinnvoll, die vermeintlich einfachere Lösung zu nehmen. Template-Engines wie Smarty können durchaus auch einen Mehrwert gegenüber reinem HTML+PHP liefern, für den es sich lohnt, den hoffentlich nur anfänglich vorhandenen Mehraufwand in Kauf zu nehmen. Prinzipien können die Entscheidungsfindung abkürzen, sollten aber meines Erachtens nicht das einzige Entscheidungskriterium sein.

Lo!