Eine klasse Template-Engine für PHP – Smarty
Jeder der noch nichts von Smarty gehört, sollte hier weiterlesen
Nee im Ernst Smarty ist eine der Vielen Template-Engines, die es für PHP gibt, um die Programmlogik einfach von der Präsentation zu trennen. Smarty habe ich das erste mal ca. 2004 für eine Webprojekt benutzt und bin seitdem begeisterter Smarty-Fanatiker. Natürlich entdeckt man über die Zeit immer mehr sinnvolle Features, die einen Einsatz von Smarty rechtfertigen.
Kurz zur Inf0: Smarty wird als PHP-Klasse eingebunden und über ein instanziiertes Objekt angesprochen. Dabei werden die Templates (Vorlagen mit Endung .tpl) eingelesen und zur Laufzeit mit den aktuellen Ausgaben (Programmlogik) ausgegeben. Dabei werden Variablen mithilfe des assign()-Befehls an ein Template übergeben. Innerhalb der Templates hat man sehr viele Möglichkeiten, wie man Sie auch direkt in PHP kennt. Z. B. das Durchlaufen einer Liste, Ausgabe von Request-Feldern, If-then-Else-Unterscheidungen und noch vieles mehr.
Die Installation von Smarty ist denkbar einfach:
- Smarty kostenlos downloaden
- Ggf. eine eigene Smarty-Klasse erzeugen mit einer individuellen Konfiguration
- Smarty-Objekt aus der Klasse erstellen
- Template und Programmlogik implementerieren und Variableb übergeben – Je nachdem wie aufwendig das ist…
- Variablen an Smarty übergeben mit assign()
- Template am Bildschirm ausgeben mit display()
Nachdem man Schritt 1 und 2 erfolgreich abgeschlossen hat, kann man anhand des folgenden kleinen Beispiels kurz die Funktionsweise von Smarty erahnen. Bitte noch in der MySmarty.class.php den Pfad zu Smarty anpassen.
Die Programmlogik in bauch.php:
//Eigene Smarty-Klasse laden
require_once('MySmarty.class.php');
//Neues Objekt erstellen
$smarty = new MySmarty();
$essen = array(0 => array('Name' => 'Burger', 'Kalorien' => 'viel'),
1 => array('Name' => 'Salat', 'Kalorien' => 'wenig'));
//Übergebe das Array $essen an Smarty
$smarty->assign('essen', $essen);
//gebe Template aus
$smarty->display('bauch.tpl');
Das Template in bauch.tpl:
Führt man jetzt einmal bauch.php aus, so erscheint eine (schöne) Ausgabe des Arrays. Natürlich kann man noch weitere Fallunterscheidungen vornehmen und so das Ergebnis der Ausgabe bis ins Detail mihilfe der Programmlogik beeinflussen. Darauf gehe ich aber jetzt nicht ein. Genauso wenig wie auf die anderen coolen Eigenschaften, die Smarty bietet, wie z. B. dem Caching von Templates oder die Benutzung vordefinierten Smarty-Funktionen wie z. B. date_format für Datumsformatierungen direkt im Template.
Eine weitere tolle Erklärung wie ihr Smarty für eure Webprojekte verwenden könnt, gibts hier. Dort wird außerdem noch gleich erklärt, wie ihr Xampp nutzen könnt um euch lokal einen Webserver zum Testen einzurichten.
- Geschrieben um 12:54Uhr
- RSS-Kommentare als Feed abonnieren
- TrackBack URI
Keine Kommentare
Einen Kommentar hinterlassen