Verán, tengo una clase Vista como la siguiente.
Código PHP:
Ver originalclass View
{
private $Template;
private $File;
private $VARS;
public function SetTemplate($path = 'default/' )
{
$this->Template = TEMPLATES_PATH . $path;
}
public function AddBlock($s, $n)
{
$this->VARS[$s] = $n;
}
public function SetFile($file)
{
}
public function Renderize()
{
${APP_VARS_NAME}=$this->VARS;
require_once($this->Template.$this->File); }
}
Bien, la vista al ejecutar Renderize, crea una variable con el nombre de la constante APP_VARS_NAME, y hace require el file indicado por el controlador. EL inconveniente es el siguiente:
El view crea un arreglo como este
$VARS['products']
$VARS['site]['name'] .. etc.. etc..
Yo quiero cambiar ese echo $VARS['products'] por show_products() en la template, se me ocurrió hacer la función dentro del View, pero esto sería casi extremadamente rudimentario (No se que pensaran ustedes), así que pensé, puedo crear la variable global y el View simplemente trabaja sobre esa global (las funciones como show_products() pueden acceder a esas variables globales $GLOBAL), pero no se que tan conveniente sería usar globales, he leído que es poco conveniente en cuanto eficiencia, podría utilizar también sesiones para guardar la información, pero no estoy seguro. ¿Cual sería la mejor solución?
Saludos