我之前创建了一个动作帮助器Website_Layout_ActionHelper
,它扩展了Zend_Controller_Action_Helper_Abstract
并且有getName
方法返回" layoutSelector"。
这个助手已经和其他几个已经放在一起的助手一起工作了好几年,尽管他们都没有打电话给其他人。
我现在正在尝试创建一个新的动作助手,布局助手需要调用它。
新的操作帮助程序是Website_UserInfo_ActionHelper
- 它的设置方式与其他帮助程序(文件路径等)的设置方式基本相同,并且getName
方法返回userInfo
。
但是,当我尝试从布局助手访问新助手时,我遇到以下例外情况:
致命错误:未捕获的异常' Zend_Loader_PluginLoader_Exception'邮件'插件名称' UserInfo'在/usr/share/php/Zend/Controller/Plugin/Broker.php第336行
Zend_Loader_PluginLoader_Exception:按名称插件' UserInfo'在注册表中找不到;使用的路径:第424行的Zend_Controller_Action_Helper_:Zend / Controller / Action / Helper / in /usr/share/php/Zend/Loader/PluginLoader.php
Zend_Controller_Action_Exception:第369行/usr/share/php/Zend/Controller/Action/HelperBroker.php中找不到名称UserInfo的Action Helper
但是,当我从Zend_Controller_Action_HelperBroker::getExistingHelpers()
转储数组而不是尝试调用Zend_Controller_Action_HelperBroker::getHelper('userInfo')
时,userInfo助手就在那里......
错误消息将UserInfo名称大写的事实可能是一个线索,但我不明白为什么当所有其他帮助者都乐于工作时我会得到这种行为。是因为我试图从另一个助手内部访问助手吗?因为在我的阅读中,这应该是可能的。
所以,问题是:为什么在实际加载帮助程序时尝试从代理获取帮助程序时会出现异常?