Entwicklung & Design

Eine Einführung in die Smarty Template-Engine: Schichtentrennung leicht gemacht

Nicht erst seit Frameworks wie Symfony oder CakePHP ist die Idee der Schichtentrennung in Webapplikationen ein Thema. Bereits seit langem bieten Template-Engines wie die Smarty-Engine die einfache Trennung von HTML-Markup und Anwendungslogik. Die Trennung bietet große Vorteile, vor allem dann, wenn mehrere Entwickler an einem Projekt beteiligt sind.

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.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.