Code Crash #11 – Installation und Nutzung von Smarty

Installation und Nutzung von Smarty

★ Code Crash ★
Folge #011 – Installation und Nutzung von Smarty

In diesem Beitrag biete ich euch eine detaillierte Anleitung für die Installation, Einrichtung und Nutzung der PHP Template Engine Smarty in einem Web-Projekt.

Übersicht der Anleitung zur Installation und Nutzung von Smarty

Zuerst möchte ich euch einen kurzen Überblick geben, was ihr in dieser Anleitung erwarten dürft.

[mwm-aal-display]

Klickt auf den jeweiligen Punkt, um direkt zu der gewünschten Information zu springen. Mit einem Klick auf das Zeichen # neben einer Überschrift kommt ihr zurück zu dieser Themen-Übersicht.

Was ist Smarty?

Smarty ist eine Template Engine, die unter der Lizenz LGPL veröffentlicht wurde. Diese Template Engine wird als PHP-Bibliothek angeboten, die von den Nutzern mit wenig Aufwand in eigenen Web-Projekten eingesetzt werden kann.

Mit Smarty ist eine saubere Trennung von PHP- und HTML-Code möglich. Der benötigte HTML-Code wird in HTML-Dateien als Templates/Vorlagen abgelegt. Über vordefinierte Platzhalter in diesen HTML-Dateien können Informationen aus PHP-Dateien in diesen HTML-Dateien eingebunden werden.

Smarty bietet als Template Engine außerdem die Möglichkeit, den ausgeführten PHP-Code mit den Informationen aus den HTML-Templates in einem Cache/Zwischenspeicher abzulegen. Dies ist nützlich, wenn sich die Informationen nicht allzu häufig ändern. Der Server kann dann, statt den kompletten PHP-Code erneut auszuführen, stattdessen die gecachte Version ausgeben und spart dadurch Rechenleistung.

Installation der PHP Template Engine Smarty

Servervoraussetzungen

Um Smarty in einem Web-Projekt verwenden zu können, muss der Server/ die Entwicklungsumgebung folgende Voraussetzung erfüllen:

  • PHP – Version 5.2 oder aktueller (Stand: 18.12.2014 für Smarty Version 3.x)

Vorbereitungen vor der Verwendung von Smarty

Als Vorbereitung sollten zuerst die aktuellen Installationsdateien von www.smarty.net heruntergeladen werden.

Aktuelle Smarty Version herunterladen (www.smarty.net in Englisch)

Außerdem sollten in dem Verzeichnis, in dem Ihr eurer Web-Projekt entwickelt, einige Verzeichnisse angelegt werden, die von Smarty benötigt werden.

Dazu gehören:

  • cache
  • config
  • templates
  • templates_c

Außerdem müsst ihr ein Verzeichnis bereitstellen, in dem Ihr die Dateien von Smarty für eurer Projekt bereitstellt. Für diese Anleitung nennen wir dieses Verzeichnis ‚libraries‚. In diesem Verzeichnis erstellen wir ein Unterverzeichnis ‚smarty‚. In dieses kopieren wir die Dateien von Smarty.

Hinweis: Alle Verzeichnisnamen sowie die Verzeichnisstruktur können beliebig gewählt werden. Die finalen Verzeichnisnamen und die Verzeichnisstruktur werden bei der Nutzung von Smarty im PHP-Code festgelegt. Dazu später mehr.

Wichtig: Damit Smarty problemlos arbeiten kann, benötigt Smarty bzw. der Web-Server Schreib- und Lese-Rechte für die oben genannten Verzeichnisse.

Einrichtung von Smarty in einem Web-Projekt

Nachdem alle Dateien am richtigen Ort abgelegt wurden und die Verzeichnisnamen bekannt sind, kann die Einrichtung von Smarty weitergehen.

Dazu ist es nötig, folgenden PHP-Code in euer Web-Projekt einzubinden. Dieser Code sollte so früh wie möglich von eurem Projekt ausgeführt werden, weshalb eine Einbindung in einer Datei sinnvoll ist, die von eurem Web-Server so früh wie möglich verarbeitet wird. Für unsere Anleitung nutzen wir hierfür eine Datei mit dem Namen ‚index.php‚, die sich im Hauptverzeichnis unseres Web-Servers befindet.

An den Anfang dieser Datei schreiben wir folgenden PHP-Code:

if(!defined('BASEDIR')) define('BASEDIR','./');
require(BASEDIR."libraries/libs/Smarty.class.php");
$smarty = new Smarty();
$smarty->setTemplateDir(BASEDIR.'templates');
$smarty->setCompileDir(BASEDIR.'templates_c');
$smarty->setConfigDir(BASEDIR.'config');
$smarty->setCacheDir(BASEDIR.'cache');

Dabei sollte darauf geachtet werden, dass der Verzeichnispfad in Zeile 3 in das korrekte Verzeichnis zeigt. In dem Archiv, was Ihr von www.smarty.net heruntergeladen habt, befinden sich die benötigten Dateien im Unterverzeichnis ‚libs‚.

 Jeglicher PHP-Code, der nach diesen Anweisungen verarbeitet wird, kann nun über den Objektnamen ‚$smarty‚ Befehle und Informationen an Smarty übermittelt. Die Informationen sind dann in den jeweiligen HTML-Templates abrufbar.

Hinweis: Auch hier ist der Name des PHP-Objekts (in unserem Beispiel $smarty) beliebig wählbar.

Nutzung von Smarty

Im Rahmen dieser Anleitung werde ich euch in einem kleinen Beispiel zeigen, wie man Smarty in einem Web-Projekt verwendet.

Beispiel – Basis-Webseite mit dynamischem Content und Meta-Title

Für eine kleine Webseite mit den nötigsten Informationen für den Browser braucht man nicht viel. Für dieses Beispiel gehen wir von der oben genannten Ordnerstruktur aus. Solltet Ihr diese umbenannt oder verändert haben, müsst ihr die Pfade entsprechend anpassen.

Ablegen von HTML-Templates

Zuerst legen wir ein HTML-Template an, das von Smarty verwendet, verarbeitet und an den Browser zur Ansicht gesendet werden soll. Dieses Template mit dem Namen ‚default.html‚ legen wir im Verzeichnis ‚templates‘ ab.

Für unser Beispiel speichern wir folgenden HTML-Code in dieser Datei ab:

{include file="$inhalt"}

Außerdem legen wir eine Datei ‚home.html‘ im Verzeichnis ‚templates‘ an, die folgenden Inhalt hat:

{$title}

Der Test der Smarty-Installation ist erfolgreich!

Ausgabe der Templates durch Smarty

Um die HTML-Templates nun von Smarty ausgeben zu lassen, müssen wir im PHP-Code die Datei angeben und die Platzhalter ausfüllen. Dies sieht dann so aus:

$smarty->assign("title", "Hallo Welt!");
$smarty->assign("inhalt", "home.html");
$smarty->display("default.html");

 Diesen PHP-Code fügt Ihr nach dem PHP-Code der Einbindung von Smarty in eure PHP-Datei ein (in unserer Anleitung wäre das die Datei ‚index.php‘).

Das Ergebnis sollte dann so aussehen:

Je nachdem, welchen Dateinamen Ihr in Zeile 3 anstelle von home.html angebt, wird Smarty diese Datei einbinden, sofern diese an dem Ort liegt, den Ihr Smarty in Zeile 3 mitteilt.

Hinweis: Es ist nicht zu empfehlen, in Zeile 3 (Dateiname der Content-Datei) den selben Namen anzugeben wie in Zeile 4 (Name des Haupt-Templates).

Weitere Informationen zu Smarty

Wenn Ihr weitere Informationen und zu den Möglichkeiten von Smarty als Template Engine benötigt, könnt Ihr unter folgendem Link mehr erfahren (Leider für Version 3.x nur in Englisch verfügbar).

Aktuelle Smarty Dokumentation (von www.smarty.net in Englisch)



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Ich habe die Datenschutzerklärung zur Kenntnis genommen. Ich stimme zu, dass meine Angaben dauerhaft gespeichert werden.