我刚开始学习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
答案 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)
删除 ClassMapAutoLoader 映射,它应该只有StandardAutoloader,如下所示;
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
这将解决问题。