PHP Templating
Ich schreibe eine einfache Templating-Ebene in PHP, aber ich bin ein bisschen festgefahren. Im Moment funktioniert das so:
uerst benutze ichfetch_template
, um die Vorlageninhalte aus der Datenbank zu laden - dies funktioniert (und ich sammle alle Vorlagen beim Start, wenn Sie interessiert sind).
Ich verwende PHP-Variablen in meinem Vorlagencode und in der Logik -
// PHP:
$name = 'Ross';
// Tpl:
<p>Hello, my name is $name.</p>
Ich benutze dannoutput_template
(unten), um die Variablen in der Vorlage zu analysieren und zu ersetzen. Bisher habe ich Vorlagen-Tags mit einem verherrlichten @ verwendestr_replace
Template-Klasse, aber es war zu ineffizient.
/**
* Returns a template after evaluating it
* @param string $template Template contents
* @return string Template output
*/
function output_template($template) {
eval('return "' . $template . '";');
}
Mein Problem ist, dass die Variablen nicht in der Funktion deklariert sind - daher kann die Funktion sie nicht in @ analysiere$template
, es sei denn, ich füge sie in den globalen Bereich ein. Ich bin mir nicht sicher, ob ich das tun möchte. Das oder ein Array von Variablen als Parameter in der Funktion (was noch mühsamer, aber möglich klingt).
Hat jemand andere Lösungen als die Verwendung des Codes aus der Funktion (es ist nur ein Einzeiler) in meinem Code, anstatt die Funktion zu verwenden?
anke, Ro
Ps. Ich kenne Smarty und die große Auswahl an Templating-Engines. Ich möchte sie nicht verwenden, also schlagen Sie sie bitte nicht vor. Vielen Dank