Template-Engines erlauben es, die Applikationslogik – also die eigentliche PHP-Programmierung – vom Design – sprich von der HTML-Ausgabe – strikt zu trennen. Sie bieten jedoch noch weitere Vorteile, wie einen schnelleren Seitenaufbau durch Caching oder – im Falle von Smarty – eine einfache und trotzdem mächtige Erweiterbarkeit durch eine durchdachte Plugin-Architektur.
Anwendungslogik vs. Präsentationslogik
Smarty versteht sich selbst als „kompilierende Template-Engine“. Dies bedeutet, dass auch im (HTML-)Template logische Konstrukte wie if-Blöcke oder sich wiederholende Abschnitte vorkommen können. Damit verstößt man aber nicht zwingend gegen die eigentliche Idee der Trennung von Logik und Design. Es bleibt Aufgabe der Entwickler, die Applikationslogik von einer Präsentationslogik zu unterscheiden. Als Beispiel werden wir in diesem kurzen Tutorial mit Smarty das Frontend eines klassischen Weblogs bauen. Wenn wir uns die „Detailansicht“ eines Blogeintrags vor Augen führen, so stehen unterhalb des eigentlichen Blog-Eintrags die zugehörigen Leserkommentare. Diese Kommentare sind vom Design und strukturell-semantischen Aufbau identisch und unterscheiden sich nur in den jeweiligen Inhalten (Autor, E-Mail, Kommentar). Es ist also sinnvoll, nur einen einzigen Kommentar in HTML und CSS zu gestalten und diesen dann entsprechend der Anzahl der Kommentare zu wiederholen. Wir werden später sehen, dass Smarty dies über eine foreach-Schleife im HTML-Template erledigt. Es handelt sich hier also um eine Präsentationslogik.





