estoy intentando mejorar mi framework, actualmente tengo en mi clase vista lo siguiente:
Código PHP:
Todo anda de maravilla, lo que me gustaría que me digan es como puedo evitar hacer esto:Ver original
//$name es el nombre de nuestra plantilla, por ej, listado.php //$vars es el contenedor de nuestras variables, es un arreglo del tipo llave => valor, opcional. //Traemos una instancia de nuestra clase de configuracion. $config = Config::singleton(); $utilidades = Utilidades::singleton(); $debug = FirePHP::getInstance(true); $lenguaje = Language::singleton(); $url = Url::singleton(); //Armamos la ruta a la plantilla $path = $config->get('vista') . $name; //asigno algunos objetos para que puedas ser usados en el frontend $vars['utilidades'] = $utilidades; $vars['config'] = $config; $vars['debug'] = $debug; $vars['leng'] = $lenguaje; //Si no existe el fichero en cuestion, tiramos un 404 } //Si hay variables para asignar, las pasamos una a una. foreach ($vars as $key => $value) { $$key = $value; } }
Código PHP:
Ver original
//Traemos una instancia de nuestra clase de configuracion. $config = Config::singleton(); $utilidades = Utilidades::singleton(); $debug = FirePHP::getInstance(true); $lenguaje = Language::singleton(); $url = Url::singleton(); //Armamos la ruta a la plantilla $path = $config->get('vista') . $name; //asigno algunos objetos para que puedas ser usados en el frontend $vars['utilidades'] = $utilidades; $vars['config'] = $config; $vars['debug'] = $debug; $vars['leng'] = $lenguaje;
para usar esos objetos en las vistas, porque cada vez que cree una clase para x funcionalidad tengo que cambiar la clase de la vista agregándola en esa porción de código, mi duda es donde debería instanciar estos objetos para que sean visible desde cualquier vista, en el frontcontroller o en mi clase abstracta controler (de la cual heredan mis controladores)
desde ya muchas gracias