Saludos
pateketrueke!
Gracias por el dato de esta funcion, solo que en realidad lo que intento hacer es cargar clases desde otra clase, aun que si me funciono usando
call_user_func_array, solo que ahora tengo que asegurarme que las clases tengan los valores por defecto en los parametros del constructor, pero por lo menos me libre del
eval.
El codigo quedo mas o menos asi.
Código PHP:
class Mi_Clase_Principal{
var $clases = array();
function clase($clase, $parametros = array(), $nueva = false){
if(isset($this->clases[$clase]) && !$nueva){
return $this->clases[$clase];
}
if(!class_exists($clase)){
$archivo = DIRECTORIO_DE_ARCHIVOS_DE_CLASES . 'clase_' . $clase . '.php';
if(!file_exists($archivo)){
exit("El archivo de la clase '$clase' no existe");
}
include($archivo);
}
if(class_exists($clase)){
$instancia = new $clase;
if(!empty($parametros) && method_exists($instancia, '__construct')){
call_user_func_array(array($instancia, '__construct'), $parametros);
}
$this->clases[$clase] = $instancia;
return $this->clases[$clase];
}
exit("La clase '$clase' no existe");
}
}
Aunque por el momento parece estar solucionado, se aceptan opiniones.
Saludos!