У меня есть пользовательский модуль, загружаемый через композитор в таблицу поставщиков/данных.
Хотя я думаю, что все правильно настроено, я получаю следующую ошибку:
PHP Неустранимая ошибка: исключение "Zend\ModuleManager\Exception\RuntimeException" с сообщением "Модуль (MJErwin\DataTable) не может быть инициализирован". в /Applications/MAMP/htdocs/rota/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:189
Если я удалю MJErwin\DataTable из моего приложения.config.php, все будет работать нормально, так что это проблема с самим модулем.
Структура выглядит следующим образом:
My Module.php:
namespace MJErwin\DataTable;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements ConfigProviderInterface
{
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return [
'Zend\Loader\StandardAutoloader' => [
'namespaces' => [
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
],
],
];
}
}
module.config.php:
return [
'view_manager' => [
'template_path_stack' => [
__DIR__ . '/../view',
],
],
];
Затем в application.config.php:
<?php
/**
* Configuration file generated by ZFTool
* The previous configuration file is stored in application.config.old
*
* @see https://github.com/zendframework/ZFTool
// */
return [
'modules' => [
'Application',
'MJErwin\\DataTable',
'DoctrineModule',
'DoctrineORMModule',
'Environment',
'ZendDeveloperTools',
'ZfcTwig',
'ZfcBase',
'ZfcUser',
'ZfcUserDoctrineORM',
'Navigation'
],
'module_listener_options' => [
'module_paths' => [
'./module',
'./vendor'
],
'config_glob_paths' => [
'config/autoload/{,*.}{global,local}.php'
]
],
];
Я вижу две возможности.
Во-первых, вы установили модуль вручную, в этом случае загрузчик модуля zf2 будет выглядеть в следующих путях: modules/MJErwin/DataTable/Module.php
или vendor/MJErwin/DataTable/Module.php
Другая возможность - установить модуль через композитор, но забыл добавить класс модуля в раздел автозагрузки composer.json
"autoload": {
"psr-0": {
"MJErwin\\DataTable": "src/"
},
"classmap": [
"./Module.php"
]
}