Composer安装PHP包时提示“abandoned”表示该包已被作者官方废弃,不再维护,虽仍可安装但存在安全、兼容性和支持风险,应尽快迁移到推荐替代包。

这个提示意思是:你正在安装的某个 PHP 包(xxx)已被作者官方标记为“废弃”(abandoned),不再维护,也不再推荐使用。
为什么会出现这个提示
Composer 从 Packagist(PHP 官方包仓库)拉取元数据时,会检查该包是否被作者主动标记为 abandoned。常见原因包括:
- 作者已停止更新,长期未修复安全漏洞或兼容性问题
- 功能被另一个新包替代(比如
guzzlehttp/guzzle替代了旧版guzzle/guzzle) - 项目迁移到新命名空间或新仓库(如从
monolog/monolog的某个旧 fork 迁出) - 作者在 Packagist 后台手动设置了 abandoned 状态,并可能推荐了替代包
这个提示会影响安装吗
不会。Composer 默认仍会正常下载并安装该包,只是加了一行黄色警告提醒你注意风险。
但要注意:废弃包 ≠ 立即不能用,而是意味着它未来很可能:
- 无法适配新版 PHP(如 PHP 8.2+)
- 存在未修复的安全隐患(CVE 不再跟进)
- 与新版本依赖冲突(比如依赖过时的 symfony/console v3)
- 文档失效、社区支持消失
你应该怎么做
别直接忽略,建议按以下步骤处理:
- 查看 Composer 输出中是否附带了推荐替代包(例如:
Package xxx is abandoned, you should avoid using it. Use yyy/zzz instead.) - 访问该包的 Packagist 页面(如 packagist.org/packages/xxx),确认 abandoned 状态和推荐方案
- 搜索项目中对该包的调用,评估迁移到替代包的工作量(接口是否兼容?是否需重写逻辑?)
- 如果暂无法升级,至少在 composer.json 中用
"minimum-stability": "stable"和"prefer-stable": true降低引入不稳定依赖的风险
可以关闭这个提示吗
技术上可以,但不推荐。例如加 --no-abandoned 参数跳过检查,或在 composer.json 中设 "notify-on-install": false —— 这只会隐藏问题,不解决潜在风险。
真正稳妥的做法是把废弃包当作技术债来管理,列入近期升级计划。










