Zend framework Zend控制器操作帮助程序问题无法添加帮助程序
尝试使用preDispatch方法使控制器辅助对象在某些控制器中具有类似的功能 错误:Zend framework Zend控制器操作帮助程序问题无法添加帮助程序,zend-framework,Zend Framework,尝试使用preDispatch方法使控制器辅助对象在某些控制器中具有类似的功能 错误: Fatal error: Class 'Helper_Action_Test' not found in /var/www/zend.dev/application/Bootstrap.php on line 9` 应用程序布局 /Application /Helpers **/Actions** this is where i will save the classes /Views /m
Fatal error: Class 'Helper_Action_Test' not found in /var/www/zend.dev/application/Bootstrap.php on line 9`
应用程序布局
/Application
/Helpers
**/Actions** this is where i will save the classes
/Views
/modules
/configs
/layouts
/Bootstrap.php
在引导中,我添加了:
protected function _initActionHelpers(){
Zend_Controller_Action_HelperBroker::addHelper(new Helper_Action_Test());
}
在助手文件中,我有:
class Helper_Action_Test extends Zend_Controller_Action_Helper_Abstract{
public function preDispatch() {
echo 'Test';
}
}
当我在bootstap中执行此操作时,它可能与include有关,或者与我如何尝试使用addHelper()实例化新类有关
有什么想法吗?我想你必须包括帮助文件引导文件
或者我认为您希望:
require_once()
it通过在配置文件中添加以下行,您将能够实现您想要的
; Include path
includePaths.library = APPLICATION_PATH "/../library"
; Autoloader Namespace
autoloaderNamespaces[] = 'Helper_'
官方ZF文档中的更多信息要解决您的问题,请确保引导程序上的_initAutoload()是第一个方法,并确保已添加前缀路径:
Zend_Controller_Action_HelperBroker::addPrefix('Helper_Action');
如果类不在include_路径上,还可以提供类的路径:
Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/helper/action/', 'Helper_Action');
试试这个:
// Action Helpers
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH .'/controllers/helpers');
$hooks = Zend_Controller_Action_HelperBroker::getStaticHelper('Quote');
Zend_Controller_Action_HelperBroker::addHelper($hooks);
嗨,杰夫,谢谢你的回复。这是否需要我将Helpers文件夹放在library文件夹中?这样,您就必须将Helpers放在library文件夹中。如果您想使用defaut方式存储助手,您可以将类命名为Zend_View_Helper_HelperName,并扩展Zend_View_Helper_Abstract,其中有一个名为HelperName()的公共方法,可以使用$this->HelperName()调用该方法从视图中看,这些是动作助手,我必须扩展Zend_Controller_action_Helper_Abstract,以获取所有动作控制器的内容。如果这些助手对所有应用程序都是通用的,则只需将其存储在库文件夹中。如果它是特定于一个应用程序的,最好的位置是在应用程序文件夹中。嗨,Kenye,尝试了这个,仍然得到错误,找不到类。我还将该方法移到了_initAutoload方法下面。当我尝试从任何地方实例化Helper\u Action\u Test()时,它仍然找不到它。。。包括路径未按我想的那样工作。还有其他想法吗?发布你的整个引导和配置,这样我们就可以复制你的环境了。刚才注意到粘贴的第17行应该如下,但仍然不起作用。。Zend_Controller_Action_HelperBroker::addPath(应用程序路径'/helpers/Action/','Helper_Action');
// Action Helpers
Zend_Controller_Action_HelperBroker::addPath(
APPLICATION_PATH .'/controllers/helpers');
$hooks = Zend_Controller_Action_HelperBroker::getStaticHelper('Quote');
Zend_Controller_Action_HelperBroker::addHelper($hooks);