Auf der Suche nach brauchbaren Template-Engines für PHP, die ohne zu großen Overhead auskommen und eine brauchbare Performance bieten können, bin ich über ein sehr smartes Stück Code gestolpert, das mit Sicherheit für viele, insbesondere für kleine Anwendungen mehr als ausreicht. Die Template „Engine“ besteht aus einer Zeile:
print preg_replace("/\{([^\{]{1,100}?)\}/e","$$1",file_get_contents("template.tpl"));
Die Datei template.tpl sieht wie folgt aus:
{header}
{text}
Im PHP-Script setzt man jetzt die Variablen analog zu den Template-Platzhaltern:
$title="Example page";
$header="My Examples";
$text="See the placeholders replaced?";
Ich gebe zu: Man kann sich darüber streiten, ob man einer Template-Engine (und nichts anderes ist PHP ja im Prinzip) noch eine weitere Template-Engine überstülpen muss… Grundsätzlich ist es aber mindestens aus Gründen der Übersichtlichkeit sinnvoll, Logik und Darstellung zu trennen. Da kann der Einzeiler insbesondere bei kleinen Projekten sehr hilfreich sein, ohne dass man gleich den Dinosaurier Smarty oder ähnliche Vertreter nutzen muss.