2011-03-15 3 views
0

Dans cet exemple, je souhaite augmenter la variable de session appelée "test" de un chaque fois qu'elle est entrée dans le contrôleur. Si commentaire le contenu de la méthode preDispath fonctionne bien mais avec cet exemple précis, la variable de session "test" augmente de 3 ou 5 à chaque fois. J'utilise Zend Framework 1.11.4Comportement étrange du Controller_Plugin

Pourquoi ??? J'espère que vous comprenez ma question.

Rappelez-vous cet exemple est de montrer que le comportement étrange de la méthode preDispatch

Mon plug-in

class App_Plugins_Permisos extends Zend_Controller_Plugin_Abstract{ 
    public function __construct(){} 
    public function preDispatch(Zend_Controller_Request_Abstract $request) { 
     $request->setModuleName('default'); 
     $request->setControllerName('index'); 
     $request->setActionName('index');   
    } 
} 

Mon bootstrap

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ 
    protected function _initSession(){ 
     Zend_Session::start(); 
    } 
    protected function _initPlugins(){ 
     $this->bootstrap('frontcontroller'); 
     $this->frontController->registerPlugin(new App_Plugins_Permisos()); 
    } 
} 

Mon contrôleur

class IndexController extends Zend_Controller_Action{ 
    public function init(){} 
    public function indexAction(){ 
     $s = new Zend_Session_Namespace('test'); 
     if(isset($s->test)){ 
      $s->test++; 
     }else{ 
      $s->test = 1; 
     } 
     Zend_Debug::Dump($s->test); 
     die(); 
    } 
} 

Merci beaucoup

+0

J'ai essayé de reproduire ce problème, mais je ne peux pas. Pour moi cela fonctionne comme prévu (ZF 1.11.0). – Marcin

+0

avec le navigateur faites votre test? dans mon cas, fonctionne bien dans ie8 mais pas dans chrome et firefox 4 – user660030

+0

J'utilise chrome 8 dans Linux Mint 10. – Marcin

Répondre

0

Essayez de mettre en .ini resources.frontController.plugins.foo = "My_Plugin_Foo"

Si des œuvres me disent! Tnks