Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2008, 09:12
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 20 años, 4 meses
Puntos: 0
Clase AutoLoad

Hola
Hice la siguiente clase AutoLoad

Código PHP:
class AutoLoad {

    public function 
__construct() {
    }    
        
    public static function 
registerAutoload() {            
        
spl_autoload_register(array('AutoLoad''autoload'));            
    }
    
    public static function 
autoload$class_name ) {
    
        if ( 
preg_match('/.controller.php/i'$class_name) ) {
            
$path CONTROLLER_PATH;
            
$type 'controller';
            
        } elseif ( 
preg_match('/.model.php/i'$class_name) ) { 
            
$path MODEL_PATH;
            
$type 'model';
        
        } else {
            
$path CORE_PATH;
            
$type 'class';
        }
        
        
$file $path $class_name '.' $type '.php';
        
        if ( 
file_exists($file) ) {                    
            require_once 
$file;
            
        } else {
            throw new 
Exception('La clase ' $class_name ' no existe');
        } 
        
    }


Funciona bien, el problema esta cuando dentro de una clase quiero instanciar otra, por ej. desde una clase controladora instaciar un modelo, ahi no funciona el autoload.

Cual seria la forma mas facil de solucionar esto?

Una solucion que se me ocurrio es a cada clase controller, extenderla a una clase GenericController por ej y que en el consturctor de esta se realice el autoload