Symfony - 自动加载器找不到类/作曲家错误


Symfony - Autoloader can't find class / composer error

当我尝试使用composer require xyz向我的项目添加新依赖项时,出现以下错误:

自动加载器期望在文件".../vendor/ocramius/package-versions/src/PackageVersions/Versions.php"中定义类"PackageVersions''Versions"。

找到文件,但类不在其中,类名或命名空间可能有拼写错误。

我深入研究了该文件,以查看Versions类在正确的文件中,但具有以下名称:

Versions_composer_tmp0

命名空间声明在整个项目中似乎都很好,以及 php 开始标签(我读到这可能会导致此类问题)。

此外,我指出,Installer类文件(创建Versions类的文件)中的所有use语句都被phpstorm标记为Undefined Classes。它们都应该在命名空间中找到 Composer'xyz .

我尝试了以下方法,但没有成功:

  • 清除 symfony 缓存
  • 清除作曲家缓存
  • composer self-update
  • 删除ocramius供应商文件夹,以便作曲家再次下载它
  • 重命名类,这是没有意义的,因为这个Versions类的全部目的是用每个composer installcomposer update重写

编辑:

我正在尝试安装1up-lab/OneupUploaderBundleOcramius/PackageVersions可能已经作为依赖项存在(我没有手动要求它)

编辑2:

我刚刚看到server:run也行不通。因此,问题绝对与我尝试安装的捆绑包无关。我设法通过将类从 Versions_composer_tmp0 重命名为 Versions 来使服务器运行。

事实证明,这是一个作曲家问题:

作曲家

/作曲家#5237

Ocramius为此发布了修复/解决方法:

Ocramius/软件包版本 - 1.0.4 版