PHP Templating

Estoy escribiendo una capa de plantilla simple en PHP, pero me he quedado un poco atascado. Así es como funciona en este momento:

Primero usofetch_template para cargar el contenido de la plantilla desde la base de datos: esto funciona (y recopilo todas las plantillas al inicio si está interesado).

Utilizo variables PHP en mi código de plantilla y en la lógica, por ejemplo:

// PHP:
$name = 'Ross';

// Tpl:
<p>Hello, my name is $name.</p>

Entonces usooutput_template (abajo) para analizar las variables en la plantilla y reemplazarlas. Anteriormente estaba usando etiquetas de plantilla con un glorificadostr_replace clase de plantilla pero era demasiado ineficiente.

/**
 * Returns a template after evaluating it
 * @param   string  $template   Template contents
 * @return  string  Template output
 */
function output_template($template) {
    eval('return "' . $template . '";');
}

Mi problema, si aún no lo ha adivinado, es que las variables no se declaran dentro de la función, por lo tanto, la función no puede analizarlas en$template a menos que los ponga en el ámbito global, lo que no estoy seguro de querer hacer. Eso o tener una matriz de variables como parámetro en la función (que suena aún más tedioso pero posible).

¿Alguien tiene alguna otra solución que no sea usar el código de la función (es solo una línea) en mi código, en lugar de usar la función?

Gracias Ross

PD. Sé sobre Smarty y la amplia gama de motores de plantillas que existen, no estoy buscando usarlos, así que no los sugiera. ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta