Symfony - Autoloader无法找到class / composer错误

时间:2016-04-23 14:32:57

标签: php symfony composer-php

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

  

autoloader预期类“PackageVersions \ Versions”将在文件“... / vendor / ocramius / package-versions / src / PackageVersions / Versions.php”中定义。

     

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

我挖掘了该文件,看到Versions类在那里,在正确的文件中,但是具有以下名称:

Versions_composer_tmp0

命名空间声明似乎在整个项目中都很好,以及php开启标记(我读过这可能会导致这样的问题)。

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

我没有成功就累了下面的事情:

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

修改

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

编辑2:

我刚刚看到那台服务器:运行也不起作用。所以问题肯定与我正在尝试安装的软件包无关。我设法通过将类从Versions_composer_tmp0重命名为Versions来运行服务器。

1 个答案:

答案 0 :(得分:1)

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

composer/composer#5237

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

Ocramius/PackageVersions - Release 1.0.4