Я получаю следующую ошибку в приложении Zend Framework 3 :
Неустранимая ошибка: Не удалось Zend \ ModuleManager \ Exception \ RuntimeException: модуль (Serve) не может быть инициализирован.
Я знаю, что есть некоторые ответы, однако ни один из них не указывает на zf3, и ive уже проверял их без ответа. Кажется, я не могу найти ответ через исследования.
Возможно ли, что мое приложение не загружает модули? Я изменил конфигурацию приложения просто так, чтобы он мог просто не загружать сам модуль.
У меня есть структура папок:
- module -Serve -src -Module.php -Controller -IndexController.php -config -module.config.php -view
У меня есть модуль, добавленный в массив модулей внутри /config/application.config.php
.
Вот мой module.config.php
namespace Serve; return array( 'controllers' => array( 'invokables' => array( 'Serve\Controller\Index' => 'Serve\Controller\IndexController', ), ), // The following section is new and should be added to your file 'router' => array( 'routes' => array( 'serve' => array( 'type' => 'segment', 'options' => array( 'route' => '/srv[/:action]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*' ), 'defaults' => array( 'controller' => 'Serve\Controller\Index', 'action' => 'index', ), ), ), ), ), 'view_manager' => array( 'template_path_stack' => array( 'album' => __DIR__ . '/../view', ), 'strategies' => array( 'ViewJsonStrategy', ), ), );
Вот мой файл Serve\Module.php
:
<?php namespace Serve; class Module { public function getConfig() { return include __DIR__ . '/../config/module.config.php'; } }
У меня есть куча бизнес-логики внутри моего Application\Module.php
но ничего похожего на нарушение загрузки модулей.
Кажется, я не могу найти ответ через исследования. Что здесь может быть не так?
Вы добавили модуль в автозагрузчик? https://github.com/zendframework/ZendSkeletonApplication/blob/master/composer.json#L23
В ZF2 мы использовали автозагрузку почти что угодно через класс Module, теперь мы можем просто сделать это в компоновщике, что проще и разрешить такие параметры, как -optimize (generate classmaps) и -classmap-authoritative (не загружать никаких класс за пределами classmap).
Не забывайте композитор dumpautoload после редактирования файла composer.json 🙂