未捕获的异常'ZendModuleManagerExceptionRuntimeException',消息"无法初始化模块(相册)



我已经安装了骨架应用程序,它运行良好,我已经创建了新模块。模块名称为"相册"。创建模块后尝试运行代码,我收到错误。这里张贴我的代码:

模块.php

<?php
namespace Album;
 use ZendModuleManagerFeatureAutoloaderProviderInterface;
 use ZendModuleManagerFeatureConfigProviderInterface;
 class Module implements AutoloaderProviderInterface, ConfigProviderInterface
 {
     public function getAutoloaderConfig()
     {
         return array(
             'ZendLoaderClassMapAutoloader' => array(
                 __DIR__ . '/autoload_classmap.php',
             ),
             'ZendLoaderStandardAutoloader' => 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(
             'AlbumControllerAlbum' => 'AlbumControllerAlbumController',
         ),
     ),
     'view_manager' => array(
         'template_path_stack' => array(
             'album' => __DIR__ . '/../view',
         ),
     ),
 );
 ?>

我收到错误:

Fatal error: Uncaught exception 'ZendModuleManagerExceptionRuntimeException' with message 'Module (Album) could not be initialized.' in D:xampphtdocsprojectsskeletonvendorzendframeworkzendframeworklibraryZendModuleManagerModuleManager.php:195 Stack trace: #0 D:xampphtdocsprojectsskeletonvendorzendframeworkzendframeworklibraryZendModuleManagerModuleManager.php(169): ZendModuleManagerModuleManager->loadModuleByName(Object(ZendModuleManagerModuleEvent))

这对我很有效。只更新composer.json:中的自动加载

"autoload": {
    "psr-4": {
        "Application\": "module/Application/src/",
            "Album\": "module/Album/src/"
        }
    },

然后运行:

php composer.phar update

我遇到了同样的问题,我通过更正模块的名称来解决它命名空间是包含module.php的文件夹的名称,请确保它们具有相同的名称

默认情况下需要禁用配置缓存
您可以运行:

$ composer development-enable


它会起作用的。

检查文件名"module.php"的Case。在macOS上,文件系统可以找到module.php和module.php。但如果您部署到区分大小写的文件系统(比如Linux的一些变体,例如Centos),您会收到此错误。

最新更新