我已经安装了骨架应用程序,它运行良好,我已经创建了New module.Module name'Album'.after create module尝试运行代码我收到错误。 在这里发布我的代码:
module.php
<?php
namespace Album;
use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements AutoloaderProviderInterface, ConfigProviderInterface
{
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}
?>
module.config.php:
<?php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
?>
我收到错误:
Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (Album) could not be initialized.' in D:\xampp\htdocs\projects\skeleton\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php:195 Stack trace: #0 D:\xampp\htdocs\projects\skeleton\vendor\zendframework\zendframework\library\Zend\ModuleManager\ModuleManager.php(169): Zend\ModuleManager\ModuleManager->loadModuleByName(Object(Zend\ModuleManager\ModuleEvent))
答案 0 :(得分:7)
这对我有用。 只需在composer.json中自动加载:
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/",
"Album\\": "module/Album/src/"
}
},
然后运行:
php composer.phar update
答案 1 :(得分:3)
我遇到了同样的问题,我通过更正模块的名称来解决它 命名空间是包含module.php的文件夹的名称,请确保它们具有相同的名称
答案 2 :(得分:1)
默认情况下,您需要禁用配置缓存
你可以跑:
$ composer development-enable
它会工作。
答案 3 :(得分:0)
检查文件名'module.php'的大小写。在macOS上,文件系统可以找到module.php和Module.php。但是,如果部署到区分大小写的文件系统(例如Linux的某些变体),则会出现此错误。