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

[Zend] Como Accedo A Objetos Desde Un Plugin

Estas en el tema de [Zend] Como Accedo A Objetos Desde Un Plugin en el foro de Zend en Foros del Web. Hola, necesito saber como accedo al objeto $this de un action desde un plugin. Por ejemplo ejemplo para acceder al objeto view desde un action ...
  #1 (permalink)  
Antiguo 27/03/2011, 19:59
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
[Zend] Como Accedo A Objetos Desde Un Plugin

Hola, necesito saber como accedo al objeto $this de un action desde un plugin.
Por ejemplo ejemplo para acceder al objeto view desde un action se hace $this->view, pero desde un plugin no se como hacer lo mismo.
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #2 (permalink)  
Antiguo 27/03/2011, 20:10
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, 5 meses
Puntos: 1517
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Algo así
Código PHP:
Ver original
  1. public function preDispatch(Zend_Controller_Request_Abstract $request)
  2.     {
  3.         $viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer');
  4.         $viewRenderer->initView();
  5.         $view = $viewRenderer->view;
  6.         $view->render('foo');

PD: te recomiendo que busques antes, porque en los primeros resultados me dio lo que pedias
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/03/2011, 22:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Cita:
Iniciado por abimaelrc Ver Mensaje
Algo así
Código PHP:
Ver original
  1. public function preDispatch(Zend_Controller_Request_Abstract $request)
  2.     {
  3.         $viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer');
  4.         $viewRenderer->initView();
  5.         $view = $viewRenderer->view;
  6.         $view->render('foo');

PD: te recomiendo que busques antes, porque en los primeros resultados me dio lo que pedias
Hola, no me funciona lo que quiero hacer, asigno una cadena a una variable ($view->infoMessenger) pero luego no me la mantiene hasta el layout, dejo plugin:
Código PHP:
class Application_Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract
{
    private 
$_auth;
    private 
$_noAuthList;
    
    public function 
__construct(Zend_Auth $auth, array $noAuthList)
    {
        
$this->_auth $auth;
        
$this->_noAuthList $noAuthList;
    }
    
    public function 
preDispatch(Zend_Controller_Request_Abstract $request)
    {
        if (!
$this->_auth->hasIdentity()) {
            
$viewRenderer Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer');
            
$viewRenderer->init();
            
$view $viewRenderer->view;
            
$view->infoMessenger[] = 'Acceso denegado.';
            
            
$request->setControllerName('usuario');
            
$request->setActionName('login');
            
        }
    }

__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #4 (permalink)  
Antiguo 27/03/2011, 22:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Usa algo así:
Código PHP:
Ver original
  1. $Request->setControllerName('usuario')
  2.                 ->setActionName('login')
  3.                 ->setModuleName('default')
  4.                 ->setParam('error_message', 'Acceso Negado');

Luego desde tu login controller simplemente lee $this->_getParam('error_message');

Saludos.
  #5 (permalink)  
Antiguo 27/03/2011, 22:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Disculpen ya encontre el error y estaba en la siguiente línea:
Código PHP:
$viewRenderer->init(); 
Que debía ser así:
Código PHP:
$viewRenderer->initView(); 
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #6 (permalink)  
Antiguo 27/03/2011, 22:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Otra pregunta en lugar de tener que pasar el parámetro "Zend_Auth $auth" en el constructor, no lo puedo instanciar directamente en el método?

PERDON MODERADOR NO ME DI CUENTA DE EDITAR EL MENSAJE DE ARRIBA, NO PUEDO ELIMINAR ESTE MENSAJE!
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #7 (permalink)  
Antiguo 27/03/2011, 22:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Sí, Zend_Auth implementa el patrón Singleton por lo que no es necesario que lo pases en tu plugin como parámetro.

Saludos.
  #8 (permalink)  
Antiguo 27/03/2011, 22:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Cita:
Iniciado por GatorV Ver Mensaje
Sí, Zend_Auth implementa el patrón Singleton por lo que no es necesario que lo pases en tu plugin como parámetro.

Saludos.
De diez, no se porque no lo probé antes. También quisiera saber como obtengo un array del .ini desde el plugin.
Desde el bootstrap hago, $options = $this->getOptions(); pero desde el plugin no se
Muchas gracias.
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!
  #9 (permalink)  
Antiguo 27/03/2011, 22:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Ese es mejor pasarlo desde el bootstrap, ya que desde otra forma tendrías que guardar el valor en el registro y leerlo después desde tu controller.

Saludos.
  #10 (permalink)  
Antiguo 27/03/2011, 23:08
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, 5 meses
Puntos: 1517
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Creo que la mejor forma es pasarlo desde el bootstrap, aun asi lee este tema http://akrabat.com/zend-framework/ac...plication-ini/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 28/03/2011, 07:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 183
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: [Zend] Como Accedo A Objetos Desde Un Plugin

Cita:
Iniciado por abimaelrc Ver Mensaje
Creo que la mejor forma es pasarlo desde el bootstrap, aun asi lee este tema http://akrabat.com/zend-framework/ac...plication-ini/
Que buen material que me dejaste, gracias!
__________________
Le estaré agradecido por los siglos de los siglos a mi dios en PHP masterpuppet. Amen!

Etiquetas: frameworks-y-php-orientado-a-objetos, objetos, plugin
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 17:01.