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

Duda con Plugins.

Estas en el tema de Duda con Plugins. en el foro de Zend en Foros del Web. Hola amigos, tengo una duda con el funcionamiento de los plugins en ZF. Tengo un plugin: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original class ZC_Controller_Plugin_LangSelector extends ...
  #1 (permalink)  
Antiguo 20/01/2011, 10:33
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 17 años, 3 meses
Puntos: 4
Duda con Plugins.

Hola amigos, tengo una duda con el funcionamiento de los plugins en ZF.

Tengo un plugin:
Código PHP:
Ver original
  1. class ZC_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract
  2.    
  3. {
  4.     public function preDispatch(Zend_Controller_Request_Abstract $request)
  5. }
  6. .
  7. .
  8. .
  9. }
  10. }

y lo tengo correctamente registrado en el application.ini

Aqui la duda: lo que yo tenga en el preDispatch, lo voy a tener automaticamente disponible en toda la aplicación?


Tengo una aplicación en ZF hecha por otra persona y tiene este plugin declarado como les comenté pero no aparece llamado en ninguna parte de la aplicación, pero está funcionando... cosa que me tiene un poco desorientado.
Saludos.
  #2 (permalink)  
Antiguo 20/01/2011, 10:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Duda con Plugins.

Tu mismo indicas que lo tienes correctamente registrado en el application.ini, eso ya lo inyecta en el Dispatch Loop del Zend_Controller y en cada request va a entrar al plugin y ejecutar los métodos que tiene definidos.
  #3 (permalink)  
Antiguo 20/01/2011, 14: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: Duda con Plugins.

Que tal pur, deberías leer que son los plugins, y te dejo el diagrama del dispatch process, para que tengas una idea mas visual.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 20/01/2011, 15:45
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: Duda con Plugins.

Muchas gracias a los 2.
Ya voy entendiendo, o sea que cuando registro un plugin en el application.ini dicho plugin ya está ejecutable... y si quisiera que el plugin se ejecute solamente cuando yo lo instancio en algún controller, solamente debería cargarlo en el bootstrap.

Estoy en lo cierto? gracias desde ya.
  #5 (permalink)  
Antiguo 20/01/2011, 15:58
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: Duda con Plugins.

Da igual donde lo registres, si queres que solo se ejecute en un controlador deberías evaluar el request y si es el controlador deseado seguir con la ejecucion del plugin sino return, en el caso de algunos controladores deberías tener un whitelist, algo asi:

Código PHP:
Ver original
  1. class ZC_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract    
  2. {
  3.    private $_whiteList = array('index', 'login');
  4.  
  5.    public function preDispatch(Zend_Controller_Request_Abstract $request)
  6.    {
  7.       if(!in_array($request->getControllerName(), $this->_whiteList)) {
  8.          return;
  9.       }
  10.       ....
  11.    }
  12. }

Nota: en caso de ser modular, la notación debería ser module:controller
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: plugins
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 01:02.