SymfonyInsight Composer依赖安装失败接口兼容错误排查求助
问题根因说明
- 触发报错的依赖为
psr/container包 - 底层冲突来自当前使用的旧版Symfony框架,与高版本
psr/container的接口定义不兼容
冲突原理
Fatal error: Declaration of Symfony\Component\DependencyInjection\ContainerInterface::get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE) must be compatible with Psr\Container\ContainerInterface::get(string $id)
你所用的Symfony版本中,容器get()方法的第一个参数未强制声明string类型,而psr/container 2.0及以上版本要求get()方法的$id参数必须为字符串类型,二者签名不一致触发PHP编译致命错误。
修复方案
临时修复
在composer.json中添加版本约束,限制psr/container使用1.x兼容版本:
{ "require": { "psr/container": "^1.1" } }
执行composer update psr/container更新依赖即可正常运行。
长期修复
逐步升级项目Symfony版本到支持psr/container 2.0+的版本,避免后续依赖兼容风险。
内容的提问来源于stack exchange,提问作者Chiheb
相关产品推荐
相关产品推荐

