Zend Framework - 如何为所有控制器进行preDispatch?

时间:2010-10-16 12:48:15

标签: php zend-framework

我无法加载此插件如何加载它?

我有IndexController.php,我有OthersController.php。对于所有这些控制器,要有一个单一的preDispatch方法我写了一个插件如下。能否请您指导我,我现在如何将其与所有其他控制器联系起来???

@file:application / controllers / GlobalControllerPlugin.php

class GlobalControllerPlugin extends Zend_Controller_Plugin_Abstract 
{ 

  public function preDispatch() 
  {
     $this->view->helloworld = 
          '(from preDispatch)--->(controllers)--->(views)--->yesGreat)';

  }

}

1 个答案:

答案 0 :(得分:5)

您必须将插件添加(注册)到前端控制器。

Bootstrap.php

public function _initGlobalPlugin() {

    $this->bootstrap('frontController');

    // require_once 'GlobalControllerPlugin.php';
    $plugin = new GlobalControllerPlugin();

    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin($plugin);

    return $plugin;
}

application.ini

resources.frontController.plugins.global = "Global_Controller_Plugin_Common" 

确保您已正确配置自动加载器以加载您使用的命名空间。