Странное поведение Controller_Plugin - PullRequest
0 голосов
/ 15 марта 2011

В этом примере я хочу увеличить переменную сеанса, называемую «test», на единицу каждый раз, когда она вводится в контроллер.Если прокомментировать, содержимое метода preDispath работает нормально, но в этом точном примере переменная сеанса «test» увеличивается на 3 или 5 каждый раз.Я использую Zend Framework 1.11.4

Почему ???Я надеюсь, что вы понимаете мой вопрос.

Помните, что этот пример только для того, чтобы показать странное поведение метода preDispatch

Мой плагин

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');        
    }
}

Мой загрузчик

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());
    }
}

Мой контроллер

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();
    }
}

Большое спасибо

1 Ответ

0 голосов
/ 03 апреля 2011

Попробуйте вставить .ini resources.frontController.plugins.foo = "My_Plugin_Foo"

Если работает, скажите мне! Tnks

...