Zend framework2 在ZF2中注册视图帮助器路径

Zend framework2 在ZF2中注册视图帮助器路径,zend-framework2,view-helpers,Zend Framework2,View Helpers,我正在从Zend Framework 1.12迁移到2.0。到目前为止,我已经学习了如何注册单个自定义视图帮助程序。是否也可以为(多个)视图辅助对象注册路径 在ZF1中,我通过在application.ini中添加以下内容来实现这一点: resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/views/helpers" 其结果是: $this->myHelper1(和…2,…3等) 将自动加载: MyApp

我正在从Zend Framework 1.12迁移到2.0。到目前为止,我已经学习了如何注册单个自定义视图帮助程序。是否也可以为(多个)视图辅助对象注册路径

在ZF1中,我通过在application.ini中添加以下内容来实现这一点:

resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/views/helpers"
其结果是:

$this->myHelper1
(和…2,…3等)

将自动加载:

MyApp/module/Application/src/Application/View/Helper/MyHelper1.php

如何在ZF2中实现类似的功能?

您需要在配置中注册所有自定义助手,如下所示:

'view_helpers' => array(
    'invokables' => array(
        'myHelper1' => 'Application\View\Helper\MyHelper1',
        'myHelper2' => 'Application\View\Helper\MyHelper2',
    ),  
),
因为所有helpers调用都来自Zend\View\Renderer\PhpRenderer magic method _call(),所以我认为可以通过扩展原始PhpRenderer并覆盖plugin()或_call()方法来注册路径


但不建议按路径注册帮助者。ZF2是一个基于服务的框架,包括Helpers/Plugins/controller在内的一切都应该是预先建立的服务,需要在config中定义,这有利于性能和安全

那么问题到底是什么呢?Thx但这是我已经知道的。不过,我更希望只注册路径,而不是单个助手。您知道这是否可行吗?所有帮助程序都来自Zend\View\Renderer\PhpRenderer magic method\uuu call(),我认为可以通过扩展原始PhpRenderer并覆盖plugin()或uu call()方法来注册路径。但这确实是不可取的。ZF2是一个基于服务的框架,包括Helpers/Plugins/controller在内的一切都应该是预先建立的服务,需要在config中定义,这有利于性能和安全。好的,这是一个可以接受的折衷:对性能和安全造成不便。如果你在回答中包含你的评论,我将接受并投票。在我的回答中添加评论