多个视图助手插件实例?

时间:2014-01-22 00:45:03

标签: zend-framework zend-framework2 zend-view

如何在Zend 2中实例化视图助手插件的多个实例?

每次从视图中调用$this->pluginName();时,我都想返回一个新实例。

如何返回视图插件的新实例?

1 个答案:

答案 0 :(得分:2)

将服务名称添加到getViewHelperConfig()中的shared Module.php配置密钥,并将此值设置为false

<强> Module.php

function getViewHelperConfig()
{
  return array(
    'shared' => array(
      'MyViewHelper' => false,
    ),
    'factories' => array(
      'MyViewHelper' => 'App\View\Helper\MyViewHelperFactory',
    )
  );
}

通过添加'MyViewHelper' => false,服务管理器(或View Helper插件管理器)将在每次使用时创建该服务的新实例。

documentation states

  

shared 服务名称/布尔对的数组,指示是否应共享服务。默认情况下,ServiceManager假定所有服务都是共享的,但您可以在此处指定一个布尔值false以指示应返回一个新实例。