控制器插件的命名和路径

时间:2015-08-11 18:46:29

标签: zend-framework zend-controller-plugin

我很困惑,我已经阅读了有关该主题的所有内容,但它不起作用。

我想构建一个插件来使用preDispatch Action。

我想这样命名:

class Mosaik_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract

我的文件路径和名称:C:\wamp\www\mosaik\application\controllers\plugins\Acl.php

我尝试在application.ini

中注册课程
resources.frontController.plugins.acl = "Mosaik_Controller_Plugin_Acl"

我收到了一些错误:

致命错误:第117行的C:\ wamp \ www \ mosaik \ library \ Zend \ Application \ Resource \ Frontcontroller.php中找不到类'Mosaik_Controller_Plugin_Acl'

我的确切问题是:对于这个例子,应该如何在我的application.ini中注册。我的插件类的名称是正确的还是我必须更改它? (喜欢?)我知道这是一个基本的理解问题,但没有任何帮助。

1 个答案:

答案 0 :(得分:1)

您的困惑主要是因为自动加载和命名/命名空间。插件的名称与现有命名空间不匹配(至少不适用于标准ZF设置),自动加载将无法与文件匹配。因此无法找到你的班级。

在标准ZF1中,因为至少Version 1.9 -> see 30.3.2 the Module Resource Autoloader我们有插件的资源类型映射,你可以创建一个application/plugins文件夹并添加你的插件。这就是你的样子

C:\wamp\www\mosaik\application\plugins\Acl.php

// the new class name
class Application_Plugin_Acl extends Zend_Controller_Plugin_Abstract

// the new application.ini
resources.frontController.plugins.acl = "Application_Plugin_Acl"