我有以下代码:
public function _setHelpers() {
Zend_Controller_Action_HelperBroker::addPrefix('My_Controller_Action_Helpers');
Zend_Controller_Action_HelperBroker::addPath ( APPLICATION_PATH . '/controllers/helpers' );
}
有了这个,我可以在My / Controller / Action / Helpers / Helper.php或/application/controllers/helpers/Helper.php中添加一个帮助程序。没关系,但是我需要优先考虑/ application /中的那个,即:如果我有两个帮助器加载/ application中的那个而不是My / Controller / ...中的那个。
编辑
我能够通过将代码更改为:
来解决此问题 public function _setHelpers() {
$prefix = 'My_Controller_Action_Helpers';
Zend_Controller_Action_HelperBroker::addPrefix ( $prefix );
Zend_Controller_Action_HelperBroker::addPath ( APPLICATION_PATH . '/controllers/helpers', 'My_Controller_Action_Helper' );
return $this;
}
正如您可能注意到的,它几乎相同,区别在于添加路径时我还添加了前缀。感谢大家的帮助。
答案 0 :(得分:1)
添加到Helper Broker的插件路径使用Zend_Loader_PluginLoader
,它使用LIFO堆栈作为路径,因此添加的最后一个路径是第一个检查的路径。根据您的代码,由于您要添加application
路径,因此它应优先于My/Controller
中的文件(addPrefix
和addPath
调用{{1}中的相同方法1}}所以它们实际上是一样的。
这不是你找到的吗?