Php “自动装弹机等级”;Zend\Loader\ClassMapAutoLoader“;未加载

Php “自动装弹机等级”;Zend\Loader\ClassMapAutoLoader“;未加载,php,zend-framework2,autoloader,Php,Zend Framework2,Autoloader,我正在使用PHP5.5.12编写Zend Framework 2.3.1应用程序 我的应用程序包含几个模块,在每个模块的module.php中 public function getAutoloaderConfig() { return array( 'Zend\Loader\ClassMapAutoLoader' => array( __DIR__ . '/autoload_classmap.php' ),

我正在使用PHP5.5.12编写Zend Framework 2.3.1应用程序

我的应用程序包含几个模块,在每个模块的module.php中

public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\ClassMapAutoLoader' => array(
            __DIR__ . '/autoload_classmap.php'
        ),
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );
}
这是我看到的与ClassMapAutoLoader相关的唯一迹象

当我尝试运行应用程序时,我得到:

Fatal error: Uncaught exception 'Zend\Loader\Exception\InvalidArgumentException' with message 'Autoloader class "Zend\Loader\ClassMapAutoLoader" not loaded' in /mnt/storage/home/ufk/work-projects/global-logic/project/xpogames/vendor/zendframework/zendframework/library/Zend/Loader/AutoloaderFactory.php on line 85

知道为什么吗?

Module.php自动加载与ZF2自动加载无关

如何安装ZF2?我想你是自己安装的,而不是用作曲器

在ZendSkeletonApp中有一些示例,介绍了如何自动加载ZF2本身:

将此部分包含在public/index.php中

我和你有同样的问题,我找出了问题的原因:

'Zend\Loader\ClassMapAutoLoader' => array(
        __DIR__ . '/autoload_classmap.php'
    ),
需要:

'Zend\Loader\ClassMapAutoloader' => array(
        __DIR__ . '/autoload_classmap.php'
    ),

自动装弹机中的小L。我们本不该去的时候都去了。这为我澄清了一切。让我知道它是否适合您。

我使用composer安装了ZF2。我检查过了,我的init_autoloader.php和index.php与git中的相同。如果您使用composer安装了它,那么应该是file vendor/autoload.php,如果包含了它,所有这些都应该可以工作。当我从getAutoloaderConfig中删除Zend\Loader\ClassMapAutoLoader时,问题就消失了。如果您注释掉class map autoloader部分(只留下标准autoloader)是否有效?我看到了与您相同的问题。当我尝试运行条令模块CLI来更新数据库架构时,会出现这些错误。有趣的是,我没有在我的本地机器上得到这些错误,但是一旦我把所有的东西都转移到一个临时服务器上,我就得到了这些错误…发现了问题。在下面添加答案。