0

我有一个代码片段,可以检查整个网站的用户登录并获取导航等。我有几个控制器,我希望该片段包含在所有控制器中。每当我更改某些内容时,我都厌倦了一次更改所有这些。在我的其他一个项目中,我看到它以某种方式扩展到使用这部分的其他控制器

class MyController extends Zend_Controller_Action

它看起来像

class MyController extends MySnippet_Controller_Action

或类似的东西,它奏效了。但是,我无法让它发挥作用。

4

1 回答 1

0

您正在寻找的可能是针对 init() 或更可能是 predispatch() 注册的前端控制器插件。在 Zend Framework 中扩展 Zend_Controller_Action 是不受欢迎的,实际上通常不需要。

这些资源可以帮助您开发所需的插件:

了解 ZF 插件 pt 1
了解 ZF 插件 pt 2

当然还有参考手册部分

这是插件的基本形式:

class My_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
{

    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        parent::preDispatch($request);
        //truncated
    }
}
于 2012-08-18T09:07:57.460 回答