我很困惑,我已经阅读了有关该主题的所有内容,但它不起作用。
我想构建一个插件来使用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中注册。我的插件类的名称是正确的还是我必须更改它? (喜欢?)我知道这是一个基本的理解问题,但没有任何帮助。
答案 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"