Php 查看脚本不';在zend框架中识别视图帮助程序

Php 查看脚本不';在zend框架中识别视图帮助程序,php,zend-framework,view-helpers,Php,Zend Framework,View Helpers,我的问题是,当我从视图脚本调用视图帮助程序时,它不能被调用 虽然我通过这一行正确地将所有信息路径添加到配置文件中: resources.view.helperPath.ZF_View_Helper_="ZF/View/Helper/" 我还在引导文件中注册了助手 function _initViewHelpers(){ $view = new Zend_View(); $view->addHelperPath('ZF/View/Helper','ZF_View_H

我的问题是,当我从视图脚本调用视图帮助程序时,它不能被调用 虽然我通过这一行正确地将所有信息路径添加到配置文件中:

resources.view.helperPath.ZF_View_Helper_="ZF/View/Helper/"
我还在引导文件中注册了助手

function _initViewHelpers(){
    $view = new Zend_View();    
    $view->addHelperPath('ZF/View/Helper','ZF_View_Helper');
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
}
但它仍然徒劳地打印出以下错误消息:

Application error
Exception information:
Message: Plugin by name 'OutputHelper' was not found in the registry; used paths: 
Zend_View_Helper_: Zend/View/Helper/  
它不包括预期的自定义视图辅助对象路径

视图帮助程序的路径是:library/ZF/view/helper/OutputHelper.php

您可以这样做:

视图脚本

$view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
var_dump($this === $view);
var_dump($view->getHelperPaths());
exit;
我认为您的视图实例在某个时候被替换了。 模块的引导是否可以查看资源

也可能是其他明显的错误。如此明显以至于你永远不会想到它

顺便说一句,删除_initViewHelpers方法。Zend_应用程序_资源_视图可以很好地实现这一点。 如果您使用此方法,请正确使用,例如:

$this->bootstrap('view');
$view = $this->getResource('view');
//whatever

通过将Zend文件夹重命名为ZF,您正在破坏Zend Framework的命名方案。这可能会在应用程序中的其他地方引起问题。听起来像是
Zend_View
实例在某个时候被替换了。正如您所说,我在控制器操作中错误地创建了新实例,现在我将其替换为:Zend_controller_Front::getInstance()->getParam('bootstrap')->getResource('View');但是现在,当我删除_initViewHelper函数时出现了一个新问题,正如您所说的,主布局中的所有自定义视图帮助程序都无法识别again@user796767获取视图实例更方便的方法是
$view=Zend\u Conroller\u Action\u HelperBroker::getStaticHelper('viewRenderer')->getView()