如何在ZF项目的所有控制器中加载另一个控制器?

时间:2012-08-18 08:49:01

标签: php zend-framework

我有一个代码片段,用于检查用户登录并获取整个站点的导航等。我有一些控制器,我想要所有这些代码段。每当我改变一些东西时,我厌倦了一次改变所有这些。在我的其他一个项目中,我看到它以某种方式扩展到使用此部分的其他控制器

class MyController extends Zend_Controller_Action

看起来像

class MyController extends MySnippet_Controller_Action

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

1 个答案:

答案 0 :(得分:0)

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

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

Understand ZF plugins pt 1
Understand ZF plugins pt 2

and of course the reference manual section

以下是插件的基本形式:

class My_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
{

    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        parent::preDispatch($request);
        //truncated
    }
}