AndreD: Gute Templateengine?

Beitrag lesen

Hallo,

Also ich möchte meine neue Homepage gleich auf Templates aufbauen. Welche Templateengine ist da empfehlenswert? Sie sollte auf jeden Fall für einen Templateanfänger verständlich und brauchbar sein.

1. Möglichkeit:
In PHP o.ä. selber eine basteln. Das ist keine grosse Sache und funktioniert in der einfachsten Variante wie folgt:
-> Du holst Dir Dein Template in einer Funktion mit fopen() und fread in den Speicher.
-> In einer anderen Funktion suchst Du nun im Template nach Deinen vorher definierten Platzhaltern und der zu ersetzenden Variable in Deinem Template.

2. Smarty http://smarty.php.net/
Ist aber u.U. für Einsteiger ein wenig komplex zu bedienen. Schau es Dir halt mal an.

3. PEAR http://pear.php.net/packages.php?catpid=10&catname=HTML&pageID=2
Diverse Template Engines stehen hier zur Auswahl, u.a. http://pear.php.net/package/HTML_Template_Xipe

(...) Aber wie sieht es aus, wenn ich zwischen dem Text noch jede Menge HTML zum formatieren brauche? Zum Beispiel eine Liste? Muss dann jeder Listenpunkt extra gespeichert werden?

Auch eine Liste wird dynamisch in PHP erzeugt. Deine einzelnen Listeninhalte werden aber nicht direkt per echo() ausgegeben, sondern i.d.R. an eine spezielle Funktion der Template Engine als Parameter übergeben, diese tauscht dann den Platzhalter im Template gegeb Deinen Inhalt. Dies funktioniert PHP-seitig auch in Schleifen, in manchen Templates Engines (z.B. Smarty) sind solche Schleifen und sogar if-Abfragen etc. schon in der Engine implementiert was diese mächtig aber auch ein wenig unübersichtlich machen.

Oder wenn ich ein Wort in einem Text als Link oder fett geschrieben haben will? Ist das mit Templates nicht total umständlich? Igendwie blick ich das noch nicht so ganz. :(

Ich habe bisher die Template Engine nur zur reinen Darstellung benutzt. AFAIK gibt es zumindest in Smarty auch noch pre/post-Filter mit denen man vor oder nach dem kompilieren eigene Ersetzungen durchführen kann also [b] als <strong> ausgeben etc. Mehr kann ich Dir dazu speziell nicht sagen...

Grüsse AndreD