首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何添加视图助手目录(zend framework)

如何添加视图助手目录(zend framework)
EN

Stack Overflow用户
提问于 2010-02-26 00:15:25
回答 4查看 20.9K关注 0票数 19

我从ZF (1.9.7)开始,我想使用我所有项目之间共享的库中的View Helpers。但是我找不到如何将它的目录添加到helpers路径。当我把它们放到应用程序的帮助路径中时,我的herpers会被罚款。

下面是错误,我在这里找到了ZF助手的路径,以及应用程序助手的路径。

代码语言:javascript
复制
object(ArrayObject)#71 (3) {
  ["exception"]=>
  object(Zend_Loader_PluginLoader_Exception)#70 (6) {
    ["message:protected"]=>
    string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
    ["string:private"]=>
    string(0) ""
    ["code:protected"]=>
    int(0)
    ["file:protected"]=>
    string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
    ["line:protected"]=>
    int(401)

诚挚的问候

Cédric

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-26 06:15:57

使用视图的内置Zend_Application资源可以非常轻松地完成此操作。如果您使用的是ini配置,则添加一行如下所示:

代码语言:javascript
复制
resources.view.helperPath.My_View_Helper = "My/View/Helper"

键的末尾是类名前缀,值是它们所在的路径。

票数 38
EN

Stack Overflow用户

发布于 2012-10-16 15:40:21

使用时会出现问题

代码语言:javascript
复制
resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/../library/App/views/helpers"

我无法访问布局中的视图帮助器,甚至模块中的本地帮助器。(在注册表中找不到名为“LoggedInAs”的插件),但仍在视图模板文件中工作。

我把这段代码"echo Zend_Debug::dump($this)“放在布局文件的末尾,这是输出的一部分。

代码语言:javascript
复制
        ["_prefixToPaths:protected"] => array(3) {
          ["Zend_View_Helper_"] => array(2) {
            [0] => string(17) "Zend/View/Helper/"
            [1] => string(16) "./views\helpers/"
          }
          ["ZendX_JQuery_View_Helper_"] => array(1) {
            [0] => string(25) "ZendX/JQuery/View/Helper/"
          }
          ["Zend_View_Helper_Navigation_"] => array(1) {
            [0] => string(28) "Zend/View/Helper/Navigation/"
          }
        }

但是在bootstrap文件中使用这些代码时,没有问题。

代码语言:javascript
复制
    //Initialize and/or retrieve a ViewRenderer object on demand via the helper broker
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->initView();
    //add the global helper directory path
    $viewRenderer->view->addHelperPath(APPLICATION_PATH.'/../library/App/views/helpers', 'App_View_Helper');

输出结果如下:

代码语言:javascript
复制
            ["_prefixToPaths:protected"] => array(4) {
              ["Zend_View_Helper_"] => array(3) {
                [0] => string(17) "Zend/View/Helper/"
                [1] => string(16) "./views\helpers/"
                [2] => string(86) "D:/zf/application/modules/default/views\helpers/"
              }
              ["App_View_Helper_"] => array(1) {
                [0] => string(85) "D:\zf\application/../library/App/views/helpers/"
              }
              ["ZendX_JQuery_View_Helper_"] => array(1) {
                [0] => string(25) "ZendX/JQuery/View/Helper/"
              }
              ["Zend_View_Helper_Navigation_"] => array(1) {
                [0] => string(28) "Zend/View/Helper/Navigation/"
              }
            }
票数 5
EN

Stack Overflow用户

发布于 2011-07-04 10:25:26

编辑:使用rob allen的Loggedinas视图助手查看view helper in zend framework,了解有关此问题的更详细信息。

您不仅可以按照David Caunt指定的那样做,而且还可以像这样在您的引导程序中这样做。请注意,在Zend Framework中总是有多种方法可以做任何事情

查看http://devzone.zend.com/article/3412

如果您有权访问视图对象,请执行以下操作。

代码语言:javascript
复制
<?php    
$view->addHelperPath('My/View/Helper/', 'My_View_Helper'); 
?>

如果您在前端控制器插件中,则可能需要获取视图对象

也可以从这里开始看看这组非常棒的帖子:

http://zend-framework-community.634137.n4.nabble.com/Getting-view-from-Bootstrap-ZF1-8-tp659447p659460.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2335545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档