ZF2 - autoloader classmap致命错误'提供的地图文件不存在'

时间:2012-11-24 10:40:59

标签: php zend-framework2 zend-autoloader

我刚开始学习Zend Framework,但我的模块出了问题。 请看下面的错误。我还不知道还有什么可以告诉您更多信息。 请让我知道我需要向您展示解决问题的方法。

致命错误:未捕获的异常'Zend \ Loader \ Exception \ InvalidArgumentException

Fatal error: Uncaught exception
'Zend\Loader\Exception\InvalidArgumentException' with message 'Map
file provided does not exist. Map file: "C:\Program
Files\xampp\htdocs\zend_intro\module\Album/autoload_classmap.php"' in
C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php:175
Stack trace: #0 C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(85):
Zend\Loader\ClassMapAutoloader->loadMapFromFile('C:\Program File...')
 #1 C:\Program Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(121):
Zend\Loader\ClassMapAutoloader->registerAutoloadMap('C:\Program
File...') #2 C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php(64):
Zend\Loader\ClassMapAutoloader->registerAutoloadMaps(Array) #3
C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Lo
in C:\Program
Files\xampp\htdocs\zend_intro\vendor\zendframework\zendframework\library\Zend\Loader\ClassMapAutoloader.php
on line 175

3 个答案:

答案 0 :(得分:9)

如果您从实际使用autoload_classmap.php文件的模块中复制了示例代码,那么您可能在 module.config.php 文件或您的某个地方有类似的内容 Module.php 档案:

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\ClassMapAutoloader' => array(  // THIS IS
            __DIR__ . '/autoload_classmap.php'      // THE PROBABLE
        ),                                          // CULPRIT
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__
            )
        )
    );
}

解决方案?删除那些代码行 - 您不需要为每个模块设置自动加载器类图 - 或实际上create a classmap

答案 1 :(得分:1)

zend_intro / module / Album 下创建一个名为 autoload_classmap.php 的文件,并包含以下代码行:

return array();

请在文档中查看此内容以获取更多详细信息 Autoloading files

答案 2 :(得分:0)

module.config.php 中的

删除 ClassMapAutoLoader 映射,它应该只有StandardAutoloader,如下所示;

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );
}

这将解决问题。