控制器插件的命名和路径
naming and path of controller plugins
我很困惑,我已经阅读了我找到的有关该主题的所有内容,但它不起作用。
我想构建一个插件来使用 preDispatch
操作。
我想这样命名:
class Mosaik_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
我的路径和文件名:C:\wamp\www\mosaik\application\controllers\plugins\Acl.php
我试图在我的 application.ini
中注册 class:
resources.frontController.plugins.acl = "Mosaik_Controller_Plugin_Acl"
我遇到一些错误:
致命错误:Class 'Mosaik_Controller_Plugin_Acl' 在第 117 行的 C:\wamp\www\mosaik\library\Zend\Application\Resource\Frontcontroller.php 中找不到 'Mosaik_Controller_Plugin_Acl'
我的确切问题是:对于这个例子,我的 application.ini 应该如何注册。我的插件名称 class 是正确的还是我必须更改它? (比如?)我知道这是一个基本的理解问题,但没有任何帮助。
你的困惑主要是因为自动加载和naming/namespaces。您的插件名称与现有命名空间不匹配(至少对于标准 ZF 设置不匹配)并且自动加载将无法将其与文件匹配。因此找不到您的Class。
在标准 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"
我很困惑,我已经阅读了我找到的有关该主题的所有内容,但它不起作用。
我想构建一个插件来使用 preDispatch
操作。
我想这样命名:
class Mosaik_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
我的路径和文件名:C:\wamp\www\mosaik\application\controllers\plugins\Acl.php
我试图在我的 application.ini
中注册 class:
resources.frontController.plugins.acl = "Mosaik_Controller_Plugin_Acl"
我遇到一些错误:
致命错误:Class 'Mosaik_Controller_Plugin_Acl' 在第 117 行的 C:\wamp\www\mosaik\library\Zend\Application\Resource\Frontcontroller.php 中找不到 'Mosaik_Controller_Plugin_Acl'
我的确切问题是:对于这个例子,我的 application.ini 应该如何注册。我的插件名称 class 是正确的还是我必须更改它? (比如?)我知道这是一个基本的理解问题,但没有任何帮助。
你的困惑主要是因为自动加载和naming/namespaces。您的插件名称与现有命名空间不匹配(至少对于标准 ZF 设置不匹配)并且自动加载将无法将其与文件匹配。因此找不到您的Class。
在标准 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"