Используйте другой модуль в нашем пользовательском помощнике в Zend Framework 2.

Я хочу использовать модуль WebinoImageThumb в своем пользовательском помощнике, но когда я хочу создать экземпляр этого модуля на вспомогательных фабриках, я получаю эту ошибку:

Zend\View\HelperPluginManager::get was unable to fetch or create an instance for WebinoImageThumb

Но я могу без проблем получить доступ к экземпляру в моем контроллере.

Это код, в котором я получаю ошибку:

public function getViewHelperConfig()
{
    return array(
        'factories' =>  array(
            'ImageLib' => function ($sm)
            {
                $WebinoImageThumb = $sm->get('WebinoImageThumb');
               return new \Base\view\helper\ImageLib($WebinoImageThumb);
            }
        )
    );
}

person Mostafa Solati    schedule 03.02.2014    source источник


Ответы (1)


Не учтён вопрос: что за запись WebinoImageThumb. Это ViewHelper, ControllerPlugin или Service?

Вероятно, это не ViewHelper, потому что если бы это было так, вы могли бы получить к нему доступ, как и раньше.

Если это Сервис, вы получите его из ServiceManager.

return new \Base\View\Helper\ImageLib(
    $sm->getServiceLocator()->get('WebinoImageThumb')
);

Если это ControllerPlugin, вы получите его из ControllerPluginManager

return new \Base\View\Helper\ImageLib(
    $sm->getServiceLocator()->get('ControllerPluginManager')->get('WebinoImageThumb')
);
person Sam    schedule 03.02.2014