【发布时间】:2015-05-25 17:21:28
【问题描述】:
在我的 module.config.php 上我有类似的东西:
return [
'view_helpers' => [
'invokables' => [
'mycustomviewhelper' => 'Namespace\View\Helper\MyCustomViewHelper',
],
],
];
我还有一个实用类来处理渲染助手的职责。 Zend\Paginator 之类的东西。
Zend\Paginator 有一个代理到 render() 调用的 __toString() 方法,它实例化 View\Renderer\PhpRenderer(),然后调用 $view->paginationControl($this)。
我试图在我的实用程序类中复制类似的功能,它与 Zend\Paginator 已经做的策略相似,唯一不同的是我的视图助手是自定义的。因此,我的代码如下所示:
$view->MyCustomViewHelper($this);
这不起作用,因为 PhpRenderer 会忽略手动定义的配置并在 getHelperPluginManager 中执行以下操作:
$this->setHelperPluginManager(new HelperPluginManager());
我已经尝试调用已经在 ViewHelperManager 中定义的帮助程序,并且效果很好。
我确实尝试过事先合并配置,然后在视图中设置 PhpRenderer,但这会导致其他问题,例如找不到我的部分等。
现在我的问题是,为什么 ZF 在尝试单独渲染它时不考虑任何自定义注册视图。有没有其他方法可以做到这一点?
谢谢。
【问题讨论】:
标签: php zend-framework pagination view-helpers