fig/link-util与psr/link不兼容致Symfony5.3+ApiPlatform接口报错
问题根因
该报错由psr/link接口定义版本和fig/link-util实现版本不匹配、PHP 8.0严格类型校验触发导致。psr/link 1.x版本的接口未声明参数、返回类型,而高版本fig/link-util的实现添加了类型声明,不符合LSP原则就会抛出兼容性错误。
修改vendor目录代码属于临时修复方案,不可持续,重新执行composer install/update会覆盖修改内容,推荐使用以下规范方案解决:
方案1:锁定兼容依赖版本(最推荐,无需调整框架版本)
直接在项目根目录composer.json的require块中添加版本约束,强制拉取匹配的依赖:
{ "require": { "psr/link": "1.1.1", "fig/link-util": "1.1.2" } }
配置完成后执行命令更新依赖即可:composer update psr/link fig/link-util
方案2:升级框架与ApiPlatform版本(适合长期维护的项目)
当前使用的Symfony 5.3、ApiPlatform 2.6.6均已停止官方维护,升级到长期支持的兼容版本可从根源解决依赖冲突:
- Symfony 升级到 >= 5.4 LTS版本
- ApiPlatform 升级到 >= 2.7 或 3.x版本
升级后依赖会自动拉取适配PHP 8.0+的psr/link 2.x及对应实现,不存在类型不兼容问题。
方案3:关闭WebLink组件(临时应急方案)
如果不需要使用WebLink相关功能,可直接在配置文件中关闭该组件避免触发报错,修改config/packages/framework.yaml:
framework: web_link: enabled: false
内容的提问来源于stack exchange,提问作者kodmanyagha
相关产品推荐
相关产品推荐

