Naja du machst es im Prinzip genau wie mit PHP.
Eine Template engine macht ja im prinzip nichts anderes als deine Befehle umzuschreiben.
Z.Bsp: bei smarty wird aus:
PHP:
<?php if($lala == 1) { ?>
das hier:
Wie gesagt. Im Prinzip ist es nichts anderes und es geht eigentlich rein um das aussehen
Smarty verwandelt das dann auch genau in das zurück, das ich oben geschrieben hab.
Ich persönlich verwende trotzdem eine Templateengine für größere Projekte. Warum ?
Weil ich es doch übersichtlicher finde.
ich hab mir eine Template Klasse geschrieben, die ich inzwischen immer verwende.
Sie besteht aus genau 2 dateien.
Beispielcode:
Code:
<div>Hallo mein name ist {$Name}</div>
parseTemp.php macht aus {$lala} bzw. {if $lala == 1} den PHP Code (wie oben genannt) und diese wird nur ausgeführt, wenn ich etwas an der Templatedatei geändert habe.
(Also nicht wie smarty, die das jedes mal ändern.)
So ist die Datei, die ich im Prinzip lade genau so eine Datei, wie wenn ich sie per Hand schreiben würde. Also auch schnell.
Die Datei sieht dann so zum Beispiel aus:
PHP:
<div>Mein Name ist <?php echo templateArray['Name']; ?></div>
Und die $temp.php beinhaltet dann einfach die Funktionen, die ich während der Laufzeit benötige.
Also
PHP:
// assign macht im prinzip nichts anderes als diesen Wert in
// das globale Template array zu speichern.
function assign($varname, $varvalue)
{
$this->templateArray[$varname] = $varvalue;
}
// dann kann ich alle Variablen sehr schnell und sehr einfach dem Template hinzufügen.
$name = 'Simon';
$temp->assign('Name', $name);
Und dann hab ich noch display
PHP:
function display($file)
{
include('templatefolder/cached/'. $file .'.php');
}
// und display includiert einfach die eine datei :)
$temp->display('dastemplate.tpl');
ich hoffe du verstehst was ich meine
Grüße Simon