Я новичок в Zend Framework 3. И переношу свое приложение Zend Framework 2 на Zend Framework 3.
В настоящее время я пытаюсь вызвать userPlugin
из файла Module.php
модуля приложения.
Вот мой код,
public function onRoute(MvcEvent $e)
{
$sm = $e->getApplication()->getServiceManager();
$userPlugin = $sm->get('ControllerPluginManager')->get('userPlugin');
$userPlugin->setServiceManager($e->getApplication()->getServiceManager());
$checkLogin = $userPlugin->isLoggedIn();
}
И в моем module.config.php
,
'controller_plugins' => array(
//This is also not working
//'invokables' => array(
// 'userPlugin' => 'User\Controller\Plugin\UserPlugin',
//),
'factories' => [
Controller\Plugin\UserPlugin::class => InvokableFactory::class,
],
'aliases' => [
'userPlugin' => Controller\Plugin\UserPlugin::class,
]
)
Но получить эту ошибку
Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException: плагин с именем «UserPlugin» не найден в менеджере плагинов Zend\Mvc\Controller\PluginManager
Где я не прав?
->get(\MyModule\Controller\Plugin\UserPlugin::class)
вместо->get('UserPlugin')
. Не могли бы вы проверить, работает ли это? - person Kwido   schedule 23.02.2017Module.php
или как вы присоединяетесь к событиюroute
? Кроме того, ваш плагин работает в контроллере? - person SzymonM   schedule 23.02.2017->get('userPlugin')
, не совпадают. UserPlugin (в сообщении об ошибке) не является userPlugin (как показано в вашем примере). @Kwido правильно, В ZF3 это вызовет у вас проблему так как имена служб являются литеральными строками. Вы уверены, что используете->get('userPugin')
, а не->get('UserPlugin');
. - person AlexP   schedule 23.02.2017