Smarty – PHP Template Engine
Montag 24. Mai 2010 von Marco Saßmannshausen
Eine Template Engine wie auch Smarty (http://www.smarty.net/manual/de/) ermöglichen einen Lückenschluß zwischen Webdesignern und Entwickler. Durch den Einsatz von geschachtelten Templates verschiebt man die Erstellung des Benutzer-Interfaces in Template Dateien und heraus aus dem Programmcode.. Gerade durch diesen Schritt wird der Quellcode und auch das User-Interface an lesbarkeit gewinnen.
Ein Webdesigner kann somit direkt auf bestimmte Resourcen zugreifen, ohne das er weitgehende Programmierkenntnisse benötigt. Und auch der Programmierer wird von der Pflicht der HTML/CSS Kenntnisse etwas befreit. So lassen sich z.B. einfache ein Array/Liste an ein Template übergeben und dann dort über einfachste Schleifenanweisungen stylen.
Smarty-Template Ausschnitt:
<table style="height: 72px;" width="621">
{foreach from=DATEN_ARRAY item=$entry}
<tr>
<td>{$entry.name}</td>
<td>{$entry.eMail}</td>
</tr>
{/foreach}
</table>
Natürlich wird auch hier vom Webdesigner ein minimales Verständnis für Programmstrukturen erwartet, aber die Loslösung von der eigentlichen Programmlogik macht die Arbeit beider Parteien sehr viel einfacher.
Selbstverstänlich kann man auch in Smarty weitere Funktionen und Modifiere einbauen. So habe ich z.B. für unseren XTC basierten Online-Shop Funktionen eingebaut um Links zu Produkten, Kategorien und Contents einzufügen. Hier werden dann natürlich auch automatisch die Session-ID angefügt, wenn dies erforderlich ist. Auch Tags zum erstellen dynamischer grafischer Buttons ist natürlich kein Problem.
// Liefert nun einen Link im Shop-URL-Schema zum Content mit der Gruppen-ID 1
<a href="{content_link cgid=1}">Link-Label</a>
// erzeugt einen dynamischen/grafischen Button mit dem Text "In den Warenkorb"
{button class="button_class" label="In den Warenkorb"}
erzeugt folgenden HTML-Code:
<div style="display: inline; clear: both;">
<div style="float: left; background-image: url({$image_left}); background-repeat: no-repeat; width: 10px; height: 30px;"> </div>
<div style="padding-top: 4px; float: left; background-image: url({$image_spacer}); background-repeat: repeat-x; height: 30px;"><span>{$label_text}</span></div>
<div style="float: left; background-image: url({$image_right}); background-repeat: no-repeat; width: 8px; height: 30px;"> </div>
</div>
Darüber hinaus bietet das System auch eine Unterstützung eines Caching-Systems. Man kann die gerenderten Inhalte also speichern lassen und spart somit Rechenleistung und Datenbankzugriffe.
Fazit
Smarty ist ein hochgradig erweiterbares Template System für PHP. Die Lernkurve fällt gering aus und ermöglicht dem Entwickler eine großartige Möglichkeit die Arbeit der Webdesigner zu unterstützen. Ein Blick darauf lohnt sich in jedem Fall.
Dieser Beitrag wurde erstellt am Montag 24. Mai 2010 um 22:33 und abgelegt unter PHP. Kommentare zu diesen Eintrag im RSS 2.0 Feed. Sie können einen Kommentar schreiben, oder einen Trackback auf Ihrer Seite einrichten.