Zend framework Zend控制器操作帮助程序问题无法添加帮助程序

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

尝试使用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
 /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);