Foros del Web » Programando para Internet » PHP » Zend »

[Zend] Error GetStorage

Estas en el tema de [Zend] Error GetStorage en el foro de Zend en Foros del Web. Hola, estoy tratando de almacenar unos valores como identidad en Zend_Auth, para un uso posterior con getIdentity() pero recibo el siguiente error: Fatal error: Uncaught ...
  #1 (permalink)  
Antiguo 15/03/2011, 17:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
[Zend] Error GetStorage

Hola, estoy tratando de almacenar unos valores como identidad en Zend_Auth, para un uso posterior con getIdentity() pero recibo el siguiente error:

Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'GetStorage' was not found in the registry;

El código es el siguiente:
Código PHP:
$data $authAdapter->getResultRowObject(array('nombre''user''email'));
$storage $auth->getStorage()->write($data); 
No me doy cuenta que estoy haciendo mal.
DESDE YA GRACIAS.
  #2 (permalink)  
Antiguo 15/03/2011, 17:42
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: [Zend] Error GetStorage

Habria que ver donde definis a $auth, deberia ser algo asi:

Código PHP:
Ver original
  1. $auth = Zend_Auth::getInstance();

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 16/03/2011, 06:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por masterpuppet Ver Mensaje
Habria que ver donde definis a $auth, deberia ser algo asi:

Código PHP:
Ver original
  1. $auth = Zend_Auth::getInstance();

Saludos.
Tal cual lo tengo instanciado al objeto $auth.

Dejo el código completo por las dudas:
Código PHP:
$namespace = new Zend_Session_Namespace('usuario');
            
$resource $this->getInvokeArg('bootstrap')->getPluginResource('multidb');
            
// Don't forget to initialize the resource first
            
$resource->init();
            
// Creamos un adaptador de Zend_Auth para consultar una tabla de la base de datos
            
$authAdapter = new Zend_Auth_Adapter_DbTable(
                
$resource->getDb(),
                
'usuarios',
                
'user',
                
'password',
                
'activo = "TRUE"'
            
);
            
$authAdapter
                
->setIdentity($values['user'])
                ->
setCredential(md5($values['password']));
            
            
// Recogemos Zend_Auth
            
$auth Zend_Auth::getInstance();
            
// Realiza la comprobación con el adaptador que hemos creado
            
$result $auth->authenticate($authAdapter);
            switch (
$result->getCode()) {
                case 
Zend_Auth_Result::SUCCESS:
                    
// Recoge los valores de las columnas del registro de la Base de Datos y
                    // los almacena como identidad en Zend_Auth, para un uso posterior con getIdentity()
                    
$data $authAdapter->getResultRowObject(array('nombre''user''email'));
                    
$storage $auth->getStorage()->write($data);
                    
var_dump($storage);
                    
$infoUsuario Zend_Auth::getInstance()->getIdentity();
                    
var_dump($infoUsuario);
                    
// Bloqueamos la escritura
                    
$namespace->lock();
                    
//$this->_helper->redirector('index', 'usuario');
                    
break;
                case 
Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                    
$view->content 'The Credential you provided did not pass validation.';
                    break;
                case 
Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                    
$view->content 'El usuario que proporcionó no existe.';
                    break;
                case 
Zend_Auth_Result::FAILURE:
                    
$view->content 'There was an error processing your credentials.';
                    break;
                default:
                    
$view->content $result->getMessages();
                    break;
            } 

Última edición por CyberMauher; 16/03/2011 a las 06:37
  #4 (permalink)  
Antiguo 16/03/2011, 06:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: [Zend] Error GetStorage

Hace un dump de $auth antes de intentar el write,

Código PHP:
Ver original
  1. $data = $authAdapter->getResultRowObject(array('nombre', 'user', 'email'));
  2. Zend_Debug::dump($auth);die;
  3. $storage = $auth->getStorage()->write($data);

a ver si es efectivamente un Zend_Auth.

Y tenes un namespace sin usar, usuario, lo instancias y lockeas pero no haces nada con el.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 16/03/2011, 07:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por masterpuppet Ver Mensaje
Hace un dump de $auth antes de intentar el write,

Código PHP:
Ver original
  1. $data = $authAdapter->getResultRowObject(array('nombre', 'user', 'email'));
  2. Zend_Debug::dump($auth);die;
  3. $storage = $auth->getStorage()->write($data);

a ver si es efectivamente un Zend_Auth.

Y tenes un namespace sin usar, usuario, lo instancias y lockeas pero no haces nada con el.

Saludos.
Hice varios dump y voy a detallarlos:
Código PHP:
var_dump($auth); 
object(Zend_Auth)#79 (1) { ["_storage:protected"]=> object(Zend_Auth_Storage_Session)#124 (3) { ["_session:protected"]=> object(Zend_Session_Namespace)#121 (1) { ["_namespace:protected"]=> string(9) "Zend_Auth" } ["_namespace:protected"]=> string(9) "Zend_Auth" ["_member:protected"]=> string(7) "storage" } }


Código PHP:
$data $authAdapter->getResultRowObject(array('razonsocial''user'));
var_dump($data ); 
object(stdClass)#126 (2) { ["nombre"]=> string(28) "NOMBRE" ["user"]=> string(11) "USUARIO" }


Código PHP:
$storage $auth->getStorage()->write($data);
var_dump($storage); 
NULL --> Acá creo que hay un problema porque a mi criterio no debería ser NULL!!!


Con respecto a namespace tengo pensado usarlo pero si no puedo loguear no puedo usarlo.
  #6 (permalink)  
Antiguo 16/03/2011, 07:47
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: [Zend] Error GetStorage

Pero en donde lanza la Exception ?, no puede ser en el código que estas indicando y el null es correcto write no provee Fluent Interface, no devuelve nada por eso el null.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 16/03/2011, 07:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por masterpuppet Ver Mensaje
Pero en donde lanza la Exception ?, no puede ser en el código que estas indicando y el null es correcto write no provee Fluent Interface, no devuelve nada por eso el null.
Que salame que soy tenes razón no lanza la Exception aqui, que idiota!!!
La Exception la lanza en el layourt.phtml, más precisamente en las siguientes lineas:
Código PHP:
                    $auth Zend_Auth::getInstance();
                    if (
$auth->hasIdentity()) {
                        
$identity Zend_Auth::getIdentity();
                    } else {
                        echo isset(
$this->loginBox) ? $this->loginBox $this->LoginBox();
                    } 
  #8 (permalink)  
Antiguo 16/03/2011, 08:15
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: [Zend] Error GetStorage

El problema debe estar en el view helper LoginBox, deberías postear el código.
__________________
http://es.phptherightway.com/
thats us riders :)
  #9 (permalink)  
Antiguo 16/03/2011, 08:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por masterpuppet Ver Mensaje
El problema debe estar en el view helper LoginBox, deberías postear el código.
El helper anda bien, porque sino no me mostraria la caja de login, es más cuando hago login ya no me muestra más la caja de login lo que significa que cuando chequea $auth->hasIdentity(), me da TRUE y ejecuta $identity = Zend_Auth::getIdentity(); y es aquí cuando lanza la Exception.
Si yo comento esta línea, $identity = Zend_Auth::getIdentity();, no me lanza la Exception. Otra forma de confirmar que el helper no tiene error.
  #10 (permalink)  
Antiguo 16/03/2011, 08:35
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: [Zend] Error GetStorage

A si, deberia ser:

Código PHP:
Ver original
  1. $identity =  $auth->getIdentity();
__________________
http://es.phptherightway.com/
thats us riders :)
  #11 (permalink)  
Antiguo 16/03/2011, 09:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por masterpuppet Ver Mensaje
A si, deberia ser:

Código PHP:
Ver original
  1. $identity =  $auth->getIdentity();
Maldigo a todos los santos habidos y por haber!!!! Mira vos lo que eraaaaaa!
Bueno como siempre gracias maestro ahora anda de 10.
GRACIAS!

Última edición por CyberMauher; 16/03/2011 a las 09:16
  #12 (permalink)  
Antiguo 16/03/2011, 09:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por CyberMauher Ver Mensaje
Maldigo a todos los santos habidos y por haber!!!! Mira vos lo que eraaaaaa!
Bueno como siempre gracias maestro ahora anda de 10.
GRACIAS!
¿Eso quiere decir que masterpuppet se convierte en santo ahora?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 16/03/2011, 16:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: [Zend] Error GetStorage

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Eso quiere decir que masterpuppet se convierte en santo ahora?
Por lo menos pasó a ser mi dios PHP, alabado sea masterppupet!
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Etiquetas: frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:59.