Я работаю над CMS на основе Zend Framework 3.0 для управления DB я с помощью Doctrine. В чем моя проблема при управлении пакетами с композитором? Недавно я обновил все пакеты до новейших версий и отправил их на сервер, ничего не было изменено в других файлах. После обновления на моем сайте появилась следующая ошибка:
Неустранимая ошибка: Uncaught TypeError: возвращаемое значение Doctrine\Common\Annotations\AnnotationRegistry:: registerLoader() должно быть экземпляром Doctrine\Common\Annotations\void, ни один не возвращен в /home/platne/serwer 18346/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php:117 Трассировка стека: # 0/home/platne/serwer18346/vendor/doctrine/doctrine-module/src/DoctrineModule/Module.php(57): Doctrine\Common\Annotations\AnnotationRegistry:: registerLoader (Object (Closure)) # 1/home/platne/serwer18346/vendor/zendframework/zend-modulemanager/src/Listener/InitTrigger.php(33): DoctrineModule\Module- > init (объект ( Zend\ModuleManager\ModuleManager)) # 2/home/platne/serwer18346/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\ModuleManager\Listener\InitTrigger → __ invoke (Object (Zend\ModuleManager\ModuleEvent)) # 3/home/platne/serwer18346/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager- > triggerListeners (Object (Zen) d\ModuleManager\ModuleEvent)) # 4/home/p в /home/platne/serwer 18346/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php в строке 117
При необходимости код приложения:
модули:
return [
'Zend\Router',
'Zend\Validator',
'DoctrineModule',
'DoctrineORMModule',
'Core',
];
development.local(режим разработчика активен):
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => Doctrine\DBAL\Driver\PDOMySql\Driver::class,
'params' => [
'host' => '******',
'user' => '*******',
'password' => '******',
'dbname' => '*******',
'charset' => 'utf8'
]
]
]
]
module.config:
'doctrine' => [
'driver' => [
__NAMESPACE__ . '_driver' => [
'class' => AnnotationDriver::class,
'cache' => 'array',
'paths' => [__DIR__.'/../src/Model']
],
'orm_default' => [
'drivers' => [
__NAMESPACE__ . '\Model' => __NAMESPACE__ . '_driver'
]
]
]
]
Контроллер Factory:
public function __invoke(ContainerInterface $container,$requestedName, array $options = null)
{
$controllerInstance = null;
switch($requestedName){
case 'Core\Controller\IndexController': $controllerInstance = $this->_invokeIndex($container); break;
case 'Core\Controller\PagesController': $controllerInstance = $this->_invokePages($container); break;
}
return $controllerInstance;
}
protected function _invokeIndex(ContainerInterface $container)
{
return new Controller\IndexController(
$container->get('doctrine.entitymanager.orm_default')
);
}
protected function _invokePages(ContainerInterface $container)
{
return new Controller\PagesController(
$container->get('doctrine.entitymanager.orm_default')
);
}
Контроллер Родитель:
protected $_entityManager;
/**
* AppController constructor.
* @param EntityManager $entityManager
*/
public function __construct(EntityManager $entityManager)
{
$this->_entityManager = $entityManager;
}
/**
* @return EntityManager
*/
public function getEntityManager()
{
return $this->_entityManager;
}
Как я уже говорил, этот код работал до обновления. После обновления он покажет мне эту ошибку, а после загрузки предыдущих версий ошибка остается. Я переписываю код, но с тем же эффектом.
Композитор (без данных проекта):
"require": {
"zendframework/zend-mvc": "*",
"zendframework/zend-developer-tools": "*",
"zendframework/zend-session": "*",
"zendframework/zend-authentication": "*",
"zfcampus/zf-development-mode": "*",
"doctrine/doctrine-orm-module": "*"
},
"autoload": {
"psr-4": {
"Core\\": "module/Core/src/"
}
}