Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2011, 12:51
Avatar de SetheR
SetheR
 
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 16 años
Puntos: 44
Problema con el autoloader y mis sesiones

Hola buenas. Tengo un sistema de autenticación hecho con Zend_Auth. Decidí cambiar el resultrow que mete el Auth por defecto en la sesión, por un objeto de mis modelos (Model_User en este caso). La cuestión es que funciona todo normal hasta que se recarga la página. Mi objeto en la sesión pasa a tener esta forma:

Código:
array(1) {
  ["user"] => array(1) {
    ["storage"] => object(__PHP_Incomplete_Class)#9 (15) {
      ["__PHP_Incomplete_Class_Name"] => string(10) "Model_User"
      ["id"] => string(1) "4"
      ["email"] => string(22) "[email protected]"
      ["name"] => string(6) "marcos"
    }
  }
}
Con lo cual, intuyo que el problema es que no se carga la definición de la clase antes de la sesión. Aquí os dejo mi bootstrap por si alguien sabe cómo puedo solucionar el problema:

Código PHP:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    protected function 
_initDatabase() {
        
$this->bootstrap 'db' );
        
$db $this->getResource 'db' );
        
Zend_Registry::set 'dbAdapter'$db );
    }
    
    protected function 
_initSession() {
        
Zend_Session::start ();
        
//Set new auth storage session ($_SESSION['user])
        
Zend_Auth::getInstance ()->setStorage ( new Zend_Auth_Storage_Session 'user' ) );
    }
    
    protected function 
_initAutoLoad() {
        
Zend_Loader_Autoloader::getInstance()->registerNamespace('My_');
    }
    
    protected function 
_initResourceAutoload() {
        
$resourceLoader = new Zend_Loader_Autoloader_Resource 
            array (
                
'basePath' => APPLICATION_PATH
                
'namespace' => ''
                
'resourceTypes' => array (
                    
'model' => array (
                        
'path' => 'models/'
                        
'namespace' => 'Model_' 
                    
)
                )
            )
        );
        return 
$resourceLoader;
    }
    protected function 
_initModuleAutolad() {
        
$autoloader = new Zend_Application_Module_Autoloader 
            array (
                
'namespace' => ''
                
'basePath' => dirname __FILE__ ) . '/modules/default' 
            );
        
//Zend_Debug::dump($autoloader);
        
return $autoloader;
    }

}
¿Alguna solución? Saludos