2012-12-13 48 views
1

我正在从Zend Framework 1.12迁移到2.0。到目前为止,我已经学会了如何注册个人自定义视图助手。是否也可以注册(多个)视图助手的路径?寄存器视图ZF2中的助手路径

resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/views/helpers" 

,其结果是::

$this->myHelper1(和... 2,... 3,等

在ZF1我通过把在我的application.ini以下步骤实现这)

会自动加载:

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

我怎么能实现的东西类似于ZF2?

+0

那么究竟是什么问题? – akond

+0

刚刚编辑我的问题 – tihe

回答

2

您需要注册所有的自定义佣工在你的配置是这样的:

'view_helpers' => array(
    'invokables' => array(
     'myHelper1' => 'Application\View\Helper\MyHelper1', 
     'myHelper2' => 'Application\View\Helper\MyHelper2', 
    ), 
), 

因为所有的助手来电来自Zend的\查看\渲染器\ PhpRenderer魔术方法__call(),我认为这是可能的通过扩展原始PhpRenderer并覆盖plugin()或__call()方法来注册路径。

但不推荐使用路径注册助手。 ZF2是一个基于服务的框架,包括Helpers/Plugins/Controllers在内的所有东西都应该是预先建立的服务,需要在配置中定义,这对性能和安全性都有好处。

+0

Thx但这是我已经知道。然而,我宁愿只注册路径而不是个人助手。你有什么想法,如果这是可能的? – tihe

+0

所有的助手都来自于Zend \ View \ Renderer \ PhpRenderer魔术方法__call(),我认为可以通过扩展原始PhpRenderer并覆盖plugin()或__call()方法来注册路径。但它是真的不推荐。 ZF2是一个基于服务的框架,包括Helpers/Plugins/Controllers在内的所有东西都应该是预先建立的服务,需要在配置中定义,这对性能和安全性有好处。 – AlloVince

+0

好的,这是一个可以接受的权衡:不便表现和安全。如果你在你的回答中包括你的评论,我会接受并加注。 – tihe