我想用我自己的类扩展<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');
MyHeadMetaService.php
use Zend\View\Helper\HeadMeta;
class MyHeadMeta extends HeadMeta
{
//
}
答案 0 :(得分:0)
如果您只扩展现有的HeadMeta
类,那么您应该在HelperPluginManager
中将其注册为可调用的as is done with the original HeadMeta
view helper。
所以改变你的配置:
return array(
'invokables' => array(
'MyHeadMeta' => 'View\Helper\Service\MyHeadMetaService'
)
);
顺便说一下,我认为没有必要使用__NAMESPACE__
的完整路径。只需确保名称指向当前模块中类的正确文件和文件夹路径,并在类中声明namespace
常量。