【问题标题】:Autoloader class "Zend\Loader\ClassMapAutoLoader" not loaded未加载自动加载器类“Zend\Loader\ClassMapAutoLoader”
【发布时间】:2014-05-18 11:00:08
【问题描述】:

我正在使用 PHP 5.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

任何想法为什么?

【问题讨论】:

  • 如果您注释掉类映射自动加载器部分(只留下标准自动加载器),它是否有效?
  • 我看到和你一样的问题。当我尝试运行 Doctrine-Module CLI 来更新我的数据库模式时,我收到了这些错误。有趣的是,我没有在我的本地机器上收到这些错误,但是一旦我将所有内容移到临时服务器上,我就会这样做......
  • 发现问题。在下面添加答案。

标签: php zend-framework2 autoloader


【解决方案1】:

我遇到了和你一样的问题,我弄清楚是什么导致了这个问题:

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

需要:

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

Autoloader 中的小 L。当我们不应该这样做时,我们俩都陷入了困境。这为我清除了它。让我知道它是否适合你。

【讨论】:

    【解决方案2】:

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

    你是如何安装 ZF2 的?我想你是自己安装的,没有使用 composer?

    在 ZendSkeletonApp 中有一些例子,如何自动加载 ZF2 本身: https://github.com/zendframework/ZendSkeletonApplication/blob/master/init_autoloader.php

    在你的 public/index.php 中包含这部分 https://github.com/zendframework/ZendSkeletonApplication/blob/master/public/index.php#L14

    【讨论】:

    • 我使用 composer 安装了 ZF2。我检查了,我的 init_autoloader.php 和 index.php 与 git 中的相同。
    • 如果你用 composer 安装了它,文件 vendor/autoload.php 应该在哪里,如果它被包含在内,一切都应该工作。 github.com/zendframework/ZendSkeletonApplication/blob/master/…
    • 当我从 getAutoloaderConfig 中删除 Zend\Loader\ClassMapAutoLoader 时,问题就消失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多