2012-11-24 17 views
7

我刚开始学习Zend Framework,但我遇到了模块问题。 请参阅下面的错误。我不知道还有什么可以告诉你更多信息。 请让我知道我需要告诉你什么来解决问题。ZF2 - autoloader classmap致命错误'提供的地图文件不存在'

致命错误:未捕获的异常“的Zend \装载机\异常\ 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

回答

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

zend_intro /模块/专辑创建一个名为autoload_classmap.php文件,包括这行代码:

return array(); 

检查该文件的更多细节 Autoloading files

0

module.config.php删除ClassMapAutoLoader映射,它应该只有StandardA utoloader如下所示;

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

这将解决问题。