zend view helper configure path(在bootstrap中工作,但在application.ini中不起作用)?

时间:2011-03-01 15:35:52

标签: zend-framework

这个问题真的让我发疯了。 当我在bootstrap文件中添加我的视图Helper路径时。

$view->addHelperPath(APPLICATION_PATH.'/../library/SiteLib/View/Helper/');

它完美无缺。

但是当我将它转移到APPLICATION.INI文件时(它应该在哪里)。它很简单不起作用

resources.view[] =
resources.view.helperPath.SiteLib_View_Helper_CssHelper = APPLICATION_PATH "/../library/SiteLib/View/Helper/"

我不知道我做错了什么。 任何人都可以帮助我。

这是我的视图助手类

class Zend_View_Helper_CssHelper extends Zend_View_Helper_Abstract 
{ 
        function cssHelper() {  }
}


Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'CssHelper' in /web/zend/zendbase/library/Zend/Loader/PluginLoader.php on line 412
( ! ) Zend_Loader_PluginLoader_Exception: Plugin by name 'CssHelper' was not found in the registry; used paths: Login_View_Helper_: /web/zend/zendbase/application/modules/login/views/helpers/ ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ Zend_View_Helper_: Zend/View/Helper/:/web/zend/zendbase/application/../library/SiteLib/View/Helper/:/web/zend/zendbase/application/modules/default/views/helpers/ in /web/zend/zendbase/library/Zend/Loader/PluginLoader.php on line 412
Call Stack
#   Time    Memory  Function    Location
1   0.0001  53524   {main}( )   ../index.php:0
2   0.0451  1467432 Zend_Application->run( )    ../index.php:60
3   0.0452  1467432 Zend_Application_Bootstrap_Bootstrap->run( )    ../Application.php:366
4   0.0452  1467432 Zend_Controller_Front->dispatch( )  ../Bo

3 个答案:

答案 0 :(得分:3)

最后我自己弄清楚了问题。

我在bootstrap中覆盖了Zend_View

protected function _initView()
    {
           $view = new Zend_View($this->getOptions());
            $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
}

我刚刚在application.ini中移动了上面的代码,并从bootstrap文件中删除了该函数。它现在正在运作。 :)

resources.view.helperPath.ZendX_JQuery_View_Helper = APPLICATION_PATH "/ZendX/JQuery/View/Helper"

答案 1 :(得分:1)

resources.view.helperPath.SiteLib_View_Helper_ = APPLICATION_PATH "/../library/SiteLib/View/Helper/"

答案 2 :(得分:1)

您需要指定前缀,而不是单个帮助程序的实际类名:

resources.view[] =
resources.view.helperPath.SiteLib_View_Helper = APPLICATION_PATH "/../library/SiteLib/View/Helper/"