Symfony4安装symfony/mailer出现composer依赖报错如何解决
问题根因
依赖解析失败是三个约束互斥导致的:
- 你指定安装的
symfony/mailer ^5.4属于Symfony5.4生态,依赖symfony/mime ^5.2.6|^6.0,和你当前项目锁死的symfony/mime v4.4.42(Symfony4.4配套版本)版本不匹配。 - 你项目根目录
composer.json里配置了针对symfony/mime的冲突规则,直接禁止了所有5.x版本的mime安装,这是__root__ dev-develop conflicts with symfony/mime报错的直接来源。 - 当前运行环境PHP版本为7.3.21,而6.x版本的symfony/mime最低要求PHP8.0.2以上,完全不满足运行要求,不存在安装6.x版本的可能性。
解决步骤
- 安装与当前Symfony4.4版本完全匹配的mailer组件,不要跨大版本指定5.4版本,执行以下命令即可:
composer require symfony/mailer:^4.4
该版本的mailer依赖的symfony/mime版本为4.4系列,和你现有锁文件中的v4.4.42版本完全兼容,不会触发强制升级关联依赖的问题。
- 如果执行上述命令仍报mime版本冲突,打开根目录
composer.json找到conflict配置节点,删除其中针对symfony/mime的版本限制规则后,重新执行安装命令即可。 - 如果你确实需要使用5.4及以上版本的symfony/mailer,必须先将PHP升级到8.0.2以上,同时把整个Symfony框架升级到5.4以上版本,Symfony不支持在4.4版本的项目中单独跨大版本安装单个组件,必然出现依赖冲突。
内容的提问来源于stack exchange,提问作者zackzulg
相关产品推荐
相关产品推荐

