【问题标题】:Composer/Doctrine 2 Class 'ComposerAutoloaderInit...' not found in vendor/autoload.php在 vendor/autoload.php 中找不到 Composer/Doctrine 2 类“ComposerAutoloaderInit ...”
【发布时间】:2014-09-13 03:33:01
【问题描述】:

这让我发疯了。一切都进展顺利,直到我尝试更改我的 composer.json 文件。一旦我 composer.update'ed 我开始在我的日志中收到此错误:

PHP Fatal error:  Class 'ComposerAutoloaderInite904d9fc0cad6e1b28066897f772cc3f' not found in /home/apache2/htdocs/doctrine/vendor/autoload.php on line 7

我已将 composer.json 改回正常状态,甚至删除了整个目录并重新开始。绝对没有任何作用。

这是 autoload.php 文件。

<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer' . '/autoload_real.php';

return ComposerAutoloaderInite904d9fc0cad6e1b28066897f772cc3f::getLoader();

更新:

我在本地使用 Adob​​e Dreamweaver 编辑远程 Linux 服务器上的文件。

我已经识别出一种模式。仅当我更新位于 /src 文件夹之外的文件时,我才会收到此类错误。例如,如果我更新 src/Form.php,上传时一切正常。如果我更新 admin/access/formbuilder.php,我会收到 Class 错误,直到我 composer dump-autoload。

我刚刚尝试在 composer.json 中添加“admin/access/ 到自动加载”,但这并不能解决问题。这是 composer.json 文件的样子:

{
  "require": {
      "doctrine/orm": "2.4.*",
      "symfony/yaml": "2.*"
  },
  "autoload": {
      "classmap":["src/", "admin/access/"]
  }
}

【问题讨论】:

    标签: doctrine-orm composer-php autoloader


    【解决方案1】:

    您不应该提供该文件(您提到该文件取自教程)。这是由 Composer 作为更新过程的一部分自动生成的,并且在安装过程中也会生成。类名是动态生成的,你永远不会匹配当前的自动加载器类名。

    如果您以某种方式在自己的源代码管理中提交了该文件,那么您应该删除它。不要使用将该文件恢复到以前状态的代码。

    【讨论】:

    • 嗯,最终我意识到我没有从教程中获取那个特定的文件。但是,您回复的最后一部分似乎解决了这个问题;当我关闭 Dreamweaver 的“保存时自动将文件上传到服务器”选项时,我不再收到错误消息。令我困惑的是,即使经过多次保存,远程和本地 vendor/autoload.php 文件仍然相同。
    • 您的 Dreamweaver 在哪里(哪台机器)运行,您在哪里运行 composer dump-autoload,该错误消息来自哪里以及何时?
    • Dreamweaver 在我的 PC (Win7) 上本地运行。 composer dump-autoload 正在 Linux 服务器上远程运行。错误消息来自该远程服务器的日志/错误日志文件。我刚刚尝试更新我的 composer.json 文件,我已经开始收到关于 Class not found 的错误。即使将 .json 文件改回来。
    • 好的,接下来发生了什么事:Dreamweaver 将他的文件版本发送到服务器。您在服务器上更改它并生成一个新 ID,但 Dreamweaver 不断用旧 ID 覆盖它。我不知道为什么它也不会覆盖其他文件。您必须在使用此设置运行 Dreamweaver 的机器上运行 composer update 或任何其他 Composer 命令。然后 Dreamweaver 会自动将正确的文件发送到服务器。
    • 我已经识别出一个模式。仅当我更新位于 /src 文件夹之外的文件时,我才会收到此类错误。例如,如果我更新 src/Form.php,上传时一切正常。如果我更新 admin/access/formbuilder.php 我会收到 Class 错误,直到我 composer dump-autoload。我刚刚尝试在 composer.json 中将 "admin/access/ 添加到 autoload 但这并没有成功。
    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 2013-09-02
    • 1970-01-01
    • 2018-11-09
    • 2019-08-13
    • 2013-11-13
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多