查看在ZF2中扩展的帮助程序插件

时间:2015-12-16 11:46:42

标签: php zend-framework2 view-helpers

我想用我自己的类扩展<entity entity-name="Person" package-name="person"> <field name="personId" type="id" is-pk="true"/> <field name="name" type="text-long"/> ,然后为它创建一个工厂并通过

调用它
Zend\View\Helper\HeadMeta

来自public function getViewHelperConfig() { return array( 'factories' => array( 'MyHeadMeta' => __NAMESPACE__ . '\View\Helper\Service\MyHeadMetaService', ), ); } ,但我有

Module.php
如果我通过

调用它,那么<{> $this->view 类中的null
MyHeadMeta

在我的视图文件中。

如何正确实例化我的视图助手?

更新

我的班级看起来像这样:

MyHeadMeta.php

$this->MyHeadMeta()->setCharset('utf-8');

更新2

MyHeadMetaService.php

use Zend\View\Helper\HeadMeta;

class MyHeadMeta extends HeadMeta
{
    //
}

1 个答案:

答案 0 :(得分:0)

如果您只扩展现有的HeadMeta类,那么您应该在HelperPluginManager中将其注册为可调用的as is done with the original HeadMeta view helper

所以改变你的配置:

return array(
    'invokables' => array(
        'MyHeadMeta' => 'View\Helper\Service\MyHeadMetaService'
    )
);

顺便说一下,我认为没有必要使用__NAMESPACE__的完整路径。只需确保名称指向当前模块中类的正确文件和文件夹路径,并在类中声明namespace常量。