Използвайте друг модул в нашия персонализиран помощник в 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