带有消息'Module(Album)的未捕获异常'Zend \ ModuleManager \ Exception \ RuntimeException'无法初始化

时间:2015-02-09 14:12:12

标签: php zend-framework2

我已经安装了骨架应用程序,它运行良好,我已经创建了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))

4 个答案:

答案 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的某些变体),则会出现此错误。