1

我正在从 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 中实现类似的功能?

4

1 回答 1

2

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

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

因为所有助手调用都来自 Zend\View\Renderer\PhpRenderer 魔术方法 __call(),所以我认为可以通过扩展原始 PhpRenderer 并覆盖 plugin() 或 __call() 方法来注册路径。

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

于 2012-12-14T04:14:04.943 回答