当我尝试使用composer require xyz
向我的项目添加新依赖项时,出现以下错误:
自动加载器期望在文件".../vendor/ocramius/package-versions/src/PackageVersions/Versions.php"中定义类"PackageVersions\Versions"。
找到文件,但类不在其中,类名或命名空间可能有拼写错误。
我深入研究了该文件,以查看Versions
类在正确的文件中,但具有以下名称:
Versions_composer_tmp0
命名空间声明在整个项目中似乎都很好,以及 php 开始标签(我读到这可能会导致此类问题)。
此外,我指出,Installer
类文件(创建Versions
类的文件)中的所有use
语句都被phpstorm标记为Undefined Classes
。它们都应该在命名空间中找到 Composerxyz
.
我尝试了以下方法,但没有成功:
- 清除 symfony 缓存
- 清除作曲家缓存
-
composer self-update
- 删除
ocramius
供应商文件夹,以便作曲家再次下载它 - 重命名类,这是没有意义的,因为这个
Versions
类的全部目的是用每个composer install
或composer update
重写
编辑:
我正在尝试安装1up-lab/OneupUploaderBundle
,Ocramius/PackageVersions
可能已经作为依赖项存在(我没有手动要求它)
编辑2:
我刚刚看到server:run
也行不通。因此,问题绝对与我尝试安装的捆绑包无关。我设法通过将类从 Versions_composer_tmp0
重命名为 Versions
来使服务器运行。
事实证明,这是一个作曲家问题:
作曲家/作曲家#5237
Ocramius为此发布了修复/解决方法:
Ocramius/软件包版本 - 1.0.4 版