Datum: 30.01.2009
, Kategorie:
Meinungen,
PHP
Wie jeder vernünftige Anfänger habe auch ich zu Beginn meiner PHP-Karriere PHP- und HTML-Code kräftig gemischt. Das gehört ja schließlich zu guten Ton. Die Suppe löffle ich jetzt noch aus - immer wenn ich Änderungen und Erweiterungen am Schedule Organizer vornehme. Design und Business Logic sind zwar getrennt, aber nur durch Leerzeichen.
Schon früh habe ich meine Irrungen und Wirrungen erkannt und habe mich auf die nächstbeste Template-Engine gestürzt. Die konnte alles, was man braucht - Variablen, if-Bedingungen, Schleifen, Dateien einbinden.
Den Sinn von Template-Systemen (in PHP) stelle ich heute jedoch ernsthaft in Frage.
Nehmen wir zum Beispeil Smarty. Soweit ich das sehen kann, fügt Smarty keine neue Funktionalität hinzu. Stattdessen wird ein Teil der PHP-Funktionalität kopiert. Kann man sich auch sparen. Davon abgesehen erlaubt Smarty auch PHP-Code in {php} {/php}. Wozu waren Templates jetzt nochmal gut?
Template-Systeme rauben außerdem Performance (sprich: sind langsam) wenn nicht vorkompiliert und ge-cached wird. Das wiederum erfordert Schreibrechte auf einen Ordner, was wiederum eine Hürde für manchen Anwender darstellt. Unsere Support-Foren sind voll von diesem speziellen Problem.
Und dann stellt sich noch die Frage, für wen Template-Systeme eigentlich sein sollen.
Für die Entwickler wohl kaum. Viele von denen bauen genug Mist im eigentlichen Script-Code. Da können Sie in den Templates nicht mehr viel versauen.
Für Designer etwa? Das sind meist Leute, die in der Regel (X)HTML, Flash (Action Script) etc. können sollen. Aber man möchte sie nicht mit ein paar PHP-Anweisungen überfordern? Für wie dumm werden diese Leute gehalten? Wer den Template-Syntax (siehe auch Smarty) lernen kann, der kann auch PHP lernen.
Wie man übrigens an der Funktionsvielfalt der einzelnen Template-Systeme sieht, will der Anwender größtmögliche Freiheit. Warum gibt man ihm dann nicht gleich PHP.
Konsequenter Weise haben wir bei einem aktuellen Projekt, das mit dem Zend Framework arbeitet, komplett auf die Nutzung einer Template-Engine verzichtet. Bislang kamen noch keine Beschwerden.