Не удается зарегистрировать модуль в ZF2

0

У меня есть пользовательский модуль, загружаемый через композитор в таблицу поставщиков/данных.

Хотя я думаю, что все правильно настроено, я получаю следующую ошибку:

PHP Неустранимая ошибка: исключение "Zend\ModuleManager\Exception\RuntimeException" с сообщением "Модуль (MJErwin\DataTable) не может быть инициализирован". в /Applications/MAMP/htdocs/rota/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:189

Если я удалю MJErwin\DataTable из моего приложения.config.php, все будет работать нормально, так что это проблема с самим модулем.

Структура выглядит следующим образом:

Изображение 174551

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'
        ]
    ],
];
  • 0
    Не могли бы вы предоставить ссылку на ваш модуль, чтобы мы могли попробовать его на нашем конце и узнать проблему. Мы обнаружили github.com/mjerwin/data-table, но в нем не все файлы, которые вы упомянули в приведенном выше вопросе.
Теги:
module
zend-framework2

1 ответ

0
Лучший ответ

Я вижу две возможности.

Во-первых, вы установили модуль вручную, в этом случае загрузчик модуля zf2 будет выглядеть в следующих путях: modules/MJErwin/DataTable/Module.php или vendor/MJErwin/DataTable/Module.php

Другая возможность - установить модуль через композитор, но забыл добавить класс модуля в раздел автозагрузки composer.json

"autoload": {
    "psr-0": {
        "MJErwin\\DataTable": "src/"
    },
    "classmap": [
        "./Module.php"
    ]
}
  • 0
    Круто, это была проблема! Просто нужно добавить карту классов с Module.php в нем. Спасибо!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню