Otra cosa que puedes hacer es crear un método en tu controlador "base" y te evitas de estar haciendo news en los controladores por ejemplo en mi framework yo tengo esto:
en mi controlador base tengo:
Código PHP:
Ver originalabstract class Controller {
......
/**
* Método para cargar librerías externas al core del framework
*
* @version 0.1
* @author Lucas M. sastre
* @access public
*
* @param <string> $nombre
* @return <void>
*/
public function libreria($nombre) {
return false;
}
foreach($nombre as $plugin) {
//valido si existe el archivo de la libreria
if(file_exists($this->Config->get('root').$this->Config->get('librerias').$plugin.'.php')) { //valido si no esta instanciada la clase previamente
include_once($this->Config->get('root').$this->Config->get('librerias').$plugin.'.php');
$this->$plugin = new $plugin();
}
else {
$this->$plugin = $plugin;
}
}
else {
$ruta = $this->Config->get('root').$this->Config->get('librerias').ucfirst($plugin).'.php'; error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo Libreria] No se encuentra la libreria: {$plugin} en {$ruta}- \n", 3,$this->Config->get('root').'/errores.log');
return false;
}
}
}
}
else {
//valido si existe el archivo de la libreria
if(file_exists($this->Config->get('root').$this->Config->get('librerias').ucfirst($nombre).'.php')) { //valido si no esta instanciada la clase previamente
include_once($this->Config->get('root').$this->Config->get('librerias').ucfirst($nombre).'.php'); $this->$nombre = new $nombre();
}
else {
$this->$nombre = $nombre;
}
}
else {
$ruta = $this->Config->get('root').$this->Config->get('librerias').ucfirst($nombre).'.php'; error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo Libreria] No se encuentra la libreria: {$nombre} en {$ruta}\n", 3,$this->Config->get('root').'/errores.log'); //trigger_error("No se encuentra la libreria: {$nombre} en {$ruta}<br/>",E_USER_NOTICE);
return false;
}
}
}
.....
}
y despues desde los controladores puedo hacer esto:
Código PHP:
Ver originalclass pep extends Controller{
public function index(){
$this->librerias('arreglos');
$this->arreglos->metodo();
}
//o podemos hacer esto
public function hola(){
$this->librerias(array('arreglos','email')); $this->arreglos->metodo();
$this->email->metodo();
}
}
espero que te sirva para guiarte. Salu2