Jeder kennt Smarty - unterstelle ich mal. Ich bin zugegebenermaßen kein großer Freund der Template-Engine. Warum?
- Smarty ist fett - besteht aus viel zu vielen Dateien
- Smarty ist langsam - der ganze Kram aus Punkt 1 will ja auch ausgeführt werden ;)
- Smarty unterstützt Pseudocode - das Schlimmste überhaupt: Statt Logik und Darstellung zu trennen, bietet Smarty die Möglichkeit, Schleifen und Bedingungen im Template zu hinterlegen
- Smarty kompiliert (fast) - der Pseudocode wird in PHP Code umgewandelt
Den Endhals habe ich ja schon beschrieben. Es ist meiner Meinung nach ein riesen Unfug, Pseudocode in Templates unterzubringen. Ganz klar, es hat natürlich Vorteile. Blödsinn finde ich aber auch, das statt richtigem PHP Code Pseudocode verwendet wird. Einfacher und sicherer wirds dadurch jedenfalls nicht.
Es ist also an der Zeit, Smarty durch ein Leichtgewicht zu ersetzen. Zwei Mini-Frameworks habe ich gefunden, die Smarty gerne ersetzen würden:
- PHP-Sugar (Sweets for my sweet ;-)
- HS Template
Sugar zielt in die selbe Richtung wie Smarty und versucht uns das Leben mit Pseudocode zu versüßen (Sorry für das kleine Wortspiel, konnte ich mir nicht verkneifen ;-) Damit könnte ich schonmal den ersten Kritikpunkt loswerden… Dabei versucht Sugar durch Übersichtlichkeit und Schnelligkeit zu punkten. Es verspricht im Gegensatz zu Smarty
- einfacher
- schneller
- flexibler
- sicherer und
- erweiterbarer
zu sein. Sehr ehrenwert. Aber ist das aufgrund des Funktionsumfanges überhaupt möglich, sicherzustellen? Die Erfahrung zeigt, das kleinere Bibliotheken oft sicherer sind als große… Von Performance ganz zu schweigen.
HS Template hat einen biederen Namen. Ich finde, er klingt wie von einem Namen abgeleitet, etwa “Hans Schmitt”, ein Blick auf den Namen der Google-Group zeigt aber, dass es “HighSpeed”-Template abkürzen soll. Auch gut.
Im Wiki findet man ein 10 Minuten Tutorial, das mich auf Anhieb begeistert hat:
- Das Objekt wird initialisiert mit benutzerdefinierten Pfaden für Templates und Cache
- Dann wird ein Display-Objekt erzeugt, dass mit dem Template-Bezeichner initialisiert wird
- Das Display-Objekt wird um Teiltemplates erweitert
- Dem Display-Objekt werden Variablen zugewiesen
- Die Ausgabe der Variablen erfolgt durch echte PHP-Kommandos
- Der Cache ist Verfallsdatum-basiert
Wirklich prima umgesetzt, finde ich, ist die Variablenausgabe. Das Zuweisen von Variablen kennt man von Smarty, der Cache ist ebenfalls nichts besonderes - ist aber trotzdem ausreichend für die meisten Zwecke. Sehr gut ist die Aufteilung in Teil-Templates: So kann man bedingte Ausgaben, die in Smarty mit Conditions gelöst wurden mit schönem PHP Code regeln.
Ich werd mir HS Template bei weiteren Tests mal näher anschauen und Euch auf dem Laufenden halten.
Ähnliche Artikel:





