我在供应商/数据表中通过composer加载了一个自定义模块。
尽管我认为我的所有设置都正确,但是出现以下错误:
PHP致命错误:无法初始化带有消息“模块(MJErwin \ DataTable)”的未捕获异常'Zend \ ModuleManager \ Exception \ RuntimeException'。在/Applications/MAMP/htdocs/rota/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:189中
如果我从application.config.php中删除MJErwin \ DataTable,则一切正常,因此似乎是模块本身存在问题。
结构如下:
我的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安装了模块,但忘记将Module类添加到composer.json自动加载部分
"autoload": {
"psr-0": {
"MJErwin\\DataTable": "src/"
},
"classmap": [
"./Module.php"
]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句