1

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

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

我想这样命名它:

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 中注册。我的插件类的名称是正确的还是我必须更改它?(喜欢?)我知道这是一个基本的理解问题,但没有任何帮助。

4

1 回答 1

1

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

在至少从版本 1.9 开始的标准 ZF1 中 -> 请参阅 30.3.2 模块资源自动加载器,我们有插件的资源类型映射,您可以创建一个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"
于 2015-08-11T22:30:29.977 回答