致命错误:未找到接口“Psr\Container\ContainerInterface”
Posted
技术标签:
【中文标题】致命错误:未找到接口“Psr\\Container\\ContainerInterface”【英文标题】:Fatal error: Interface 'Psr\Container\ContainerInterface' not found in致命错误:未找到接口“Psr\Container\ContainerInterface” 【发布时间】:2019-05-06 13:38:49 【问题描述】:两周前我没有任何问题,但是今天我安装composer时出现了这个
使用包信息加载作曲家存储库
从锁文件安装依赖项(包括require-dev)
无需安装或更新
生成优化的自动加载文件
Illuminate\Foundation\ComposerScripts::postAutoloadDump php 致命错误:在第 8 行的 /opt/lampp/htdocs/nuevodirectorio/ClinicaLaravel/vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php 中找不到接口“Psr\Container\ContainerInterface”
致命错误:在第 8 行的 /opt/lampp/htdocs/nuevodirectorio/ClinicaLaravel/vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php 中找不到接口“Psr\Container\ContainerInterface”
这里是Container.php的部分代码:
<?php
namespace Illuminate\Container;
use Closure;
use Exception;
use ArrayAccess;
use LogicException;
use ReflectionClass;
use ReflectionParameter;
use Illuminate\Support\Arr;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Contracts\Container\Container as ContainerContract;
class Container implements ArrayAccess, ContainerContract
...
【问题讨论】:
这不是导致问题的文件。我建议使用rm composer.lock && composer install
重新安装所有内容
【参考方案1】:
在我的工作中,我们遇到了同样的问题。在我们的例子中,有一个 psr/container 文件导致了冲突,但是这个文件在 composer 全局缓存中,所以单独删除 vendor 文件夹对我们没有帮助。首先,我们需要使用以下命令清除作曲家缓存:
composer clearcache
然后我们删除了供应商文件夹并运行了 composer install,一切正常。我希望这个解决方案对某人有所帮助。
【讨论】:
【参考方案2】:我遇到了同样的问题。
仍在调查,但到目前为止我发现的是,在运行 composer install --no-dev [...]
时,我在供应商的 vendor/psr/container
中有包 psr/container
,但在 vendor/composer/autoload_psr4.php
中缺少 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
行。
暂时,我修复了它,包括开发依赖项,直到我找出真正的修复。
【讨论】:
以上是关于致命错误:未找到接口“Psr\Container\ContainerInterface”的主要内容,如果未能解决你的问题,请参考以下文章
如何纠正棘轮中的[PHP致命错误:未找到接口'Ratchet\MessageComponentInterface']
致命错误:未捕获的错误:未找到“Omnipay\Omnipay”类
SwiftUI 致命错误:未找到“”类型的 ObservableObject