Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda con plugin

Estas en el tema de Duda con plugin en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Como recojo el valor de una variable de un plugin en un controlador , en una vista se como hacerlo cargandoselo a la vista ,pero ...
  #1 (permalink)  
Antiguo 21/10/2011, 17:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 256
Antigüedad: 13 años, 5 meses
Puntos: 5
Duda con plugin

Como recojo el valor de una variable de un plugin en un controlador , en una vista se como hacerlo cargandoselo a la vista ,pero en un controlador...

Si tengo este plugin

Código PHP:
class App_Controller_Plugin_LayoutLoader extends 

Zend_Controller_Plugin_Abstract
{
  public 
$module;
  public 
$controller;
  public 
$action;
  public function 
preDispatch(Zend_Controller_Request_Abstract $request)
  {
      
      if (!
$request->isXmlHttpRequest()) {
        
$this->module $request->getModuleName();
        
$this->controller $request->getControllerName();
        
$this->action $request->getActionName();

      }
      
  }

Como recojo , $this->module en el controlador...

Tengo q instanciar la classe en el controlador y hacer un get o set de las variables a recojer o Zend me permite llevar el valor de las variables sin instanciarla....

No me queda claro .... Un saludo

Un saludo,
  #2 (permalink)  
Antiguo 21/10/2011, 19:22
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 9 meses
Puntos: 845
Respuesta: Duda con plugin

Es que el controlador tiene acceso al request, para acceder al nombre del module puedes hacer:

Código PHP:
Ver original
  1. $this->getRequest()->getModuleName();

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 22/10/2011, 03:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 256
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Duda con plugin

Gracias , ya sabia eso , pero queria saber si se podia hacer un plugin , para el no tener que hacer en todos los controladores $this->module = $request->getModuleName();
y simplemene hacer $modulename, porque sino es asi , no tiene mucho sentido mi plugin....a no ser que despues quiera pasarlo a la vista ....

Si fuese asi en mi plugin por ejemplo

Código PHP:
class App_Controller_Plugin_LayoutLoader extends  

Zend_Controller_Plugin_Abstract 

  public 
$variableTest
  public function 
preDispatch() 
  { 
       
     
$this->variableTest "Recojer valor en Controller";
       
  } 

Podria recojer el valor de la variable en el controller o es una locura lo que prentendo....Y si es asi , como podria hacerlo.
  #4 (permalink)  
Antiguo 24/10/2011, 10:22
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: Duda con plugin

No, no puedes hacer eso, incluir código de esa manera, probablemente cuando incorporen los Traits puedas hacerlo, pero por ahora no es posible, el plugin se ejecuta en su propio ambito.

Saludos.
  #5 (permalink)  
Antiguo 24/10/2011, 22:26
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 1 mes
Puntos: 55
Respuesta: Duda con plugin

tambien se puede usar el Zend_Registry para pasar datos a través de toda la aplicación ;)
__________________
Degiovanni Emilio
developtus.com
  #6 (permalink)  
Antiguo 28/10/2011, 12:33
 
Fecha de Ingreso: mayo-2011
Mensajes: 256
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: Duda con plugin

Pues parece ser que si hago un Zend_Registry dentro de un plugin , despues no se puede recueperar en el controlador...
  #7 (permalink)  
Antiguo 28/10/2011, 16:08
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 1 mes
Puntos: 55
Respuesta: Duda con plugin

estas haciendo un set en el zend_registry en routeStartup, routeStartdown, dispatchLoopStartup o preDispatch??? todos estos se ejecuntan antes de llegar al controlador
__________________
Degiovanni Emilio
developtus.com

Etiquetas: plugin, zend
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:56.