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

ayuda con Controller_Plugin

Estas en el tema de ayuda con Controller_Plugin en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos ,en primer lugar, busque en el foro y he googleado lo util que me puede ser usar un Zend_Controller_Plugin, me guie de ...
  #1 (permalink)  
Antiguo 09/01/2011, 16:56
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
ayuda con Controller_Plugin

Hola a todos ,en primer lugar, busque en el foro y he googleado lo util que me puede ser usar un Zend_Controller_Plugin, me guie de algunos ejemplos pero no logre que funcionara

Lo que deseo es autenticar si esta logeado ante cualquier llamada a los action de todo mi proyecto

tengo primero mi Zend_Controller_Plugin
Código PHP:
Ver original
  1. <?php
  2. class Zend_Controller_Plugin_Autenticacion extends  Zend_Controller_Plugin_Abstract{
  3.     public function routeStartup(Zend_Controller_Request_Abstract $request){}
  4.     public function routeShutdown(Zend_Controller_Request_Abstract $request){}
  5.     public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request){}
  6.     public function preDispatch(Zend_Controller_Request_Abstract $request){
  7.                
  8.         if(!Zend_Auth::getInstance()->hasIdentity()){
  9.             Zend_Debug::dump('no esta logeado');
  10.             $request->setModuleName('default')
  11.                     ->setControllerName('usuario')
  12.                     ->setActionName('index');      
  13.         }else{
  14.             Zend_Debug::dump('logeado bien');
  15.         }
  16.        
  17.     }
  18.     public function postDispatch(Zend_Controller_Request_Abstract $request){}
  19.     public function dispatchLoopShutdown(){}
  20. }

y mi bootstrap
Código PHP:
Ver original
  1. protected function _initPlugins(){
  2.         $this->bootstrap('frontController');
  3.         $plugin = new Zend_Controller_Plugin_Autenticacion();
  4.         $this->frontController->registerPlugin($plugin);
  5.     }
tambien tengo esto en el index.php de la carpeta public del proyecto
Código PHP:
Ver original
  1. $application = new Zend_Application(
  2.     APPLICATION_ENV,
  3.     APPLICATION_PATH . '/configs/application.ini'
  4. );
  5.  
  6. $application->bootstrap()->run();
y cuando ejecuto no me muestra nada en el navegador, en el firebug me muestra

GET public 500 Internal Server Error


Muchas gracias de antemano
  #2 (permalink)  
Antiguo 09/01/2011, 17:44
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: ayuda con Controller_Plugin

Ya logre resolver, al menos ya entra al metodo dispatch del Controller_Plugin, como trabajo con ajax, hay algunas cosillas q no estan bien, pero eso ya yo me encargo, lo principal ya salio

Era que tenia que guardar en una carpeta Plugins dentro de mi carpeta lib y luego en el application.ini escribir autoloaderNamespaces[] = "My", ya que mi controller_plugin lo cambie a My_Plugins_Autenticacion

Saludos
  #3 (permalink)  
Antiguo 09/01/2011, 17:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ayuda con Controller_Plugin

Que tal alfcm, veo que estas dándole duro :), ese es el espíritu, te comento que no es necesario declarar todos los "hooks", en el caso de tu plugin solo necesitas el preDispatch y podes registrarlo en el application.ini(yo prefiero tirar lo mas que pueda al config)

Código INI:
Ver original
  1. resources.frontController.plugins.Autenticacion = "My_Plugins_Autenticacion"

Nota: siempre y cuando el plugin no reciba parámetros en el constructor.

Saludos.

Última edición por masterpuppet; 09/01/2011 a las 18:09 Razón: Aclaración
  #4 (permalink)  
Antiguo 09/01/2011, 18:11
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: ayuda con Controller_Plugin

Que tal masterpuppet,gracias por tus palabras que me motivan aun mas, bueno, como rel plugin extendia una clase abstracta pense que era necesario implementarlo todo sus metodos, en fin,buen dato del config.ini , no lo sabia

Saludos
  #5 (permalink)  
Antiguo 09/01/2011, 18:16
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ayuda con Controller_Plugin

La implementacion de los métodos es obligatoria si estos son abstract, no es el caso de Zend_Controller_Plugin_Abstract.
  #6 (permalink)  
Antiguo 09/01/2011, 18:25
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: ayuda con Controller_Plugin

Asi es,pues precisamente por eso, ahora que vi el codigo de la clase Zend_Controller_Plugin_Abstract eran solo metodos simples
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 03:27.