Несколько экземпляров плагина помощника вида?

Как создать несколько экземпляров плагина помощника вида в Zend 2?

Я хочу вернуть новый экземпляр каждый раз, когда я звоню $this->pluginName(); с точки зрения.

Как мне вернуть новый экземпляр плагина вида?

1 ответ

Решение

Добавьте название сервиса к 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) будет создавать новый экземпляр этой службы при каждом ее использовании.

Документация гласит

shared Массив пар "имя сервиса / логическое значение", указывающий, должен ли сервис использоваться совместно. По умолчанию ServiceManager предполагает, что все службы являются общими, но вы можете указать здесь логическое значение false, чтобы указать, что должен быть возвращен новый экземпляр.

Другие вопросы по тегам