标记包为废弃需在composer.json中设置"abandoned": true,若指定替代包则写为"abandoned": "vendor/new-package";同时新包可用"replace"字段声明替换旧包,防止共存冲突。

Composer 通过 deprecation(废弃) 和 replacement(替换) 机制帮助开发者管理不再维护或已被新包替代的依赖。这些机制主要在 composer.json 文件中配置,能有效提示用户迁移路径并避免使用过时或存在安全风险的包。
当某个包不再维护、功能被整合进其他项目或已不推荐使用时,可以通过在 composer.json 中设置 abandoned 来标记其为废弃状态。
{
"name": "vendor/old-package",
"abandoned": true,
"description": "This package is no longer maintained."
}
一旦设置了 "abandoned": true,当用户执行 composer install 或 composer update 安装该包时,Composer 会输出警告信息,提醒该包已被废弃。
如果废弃的包有明确的替代者,可以在 abandoned 后面直接写上替代包的名称,引导用户迁移到新包。
{
"name": "vendor/old-package",
"abandoned": "vendor/new-package",
"description": "Replaced by vendor/new-package."
}
此时 Composer 不仅会提示废弃警告,还会建议用户使用 vendor/new-package 替代。用户可以根据提示更新 composer.json 中的依赖。
另外,你也可以在自己的项目中用 replace 字段声明当前包替代了另一个包,防止冲突安装。
{
"name": "vendor/new-package",
"replace": {
"vendor/old-package": "*"
}
}
这表示 new-package 完全取代了 old-package 的功能,两者不能同时安装,避免重复加载相同功能的代码。
当你在项目中遇到废弃包时,Composer 会在终端中显示类似以下信息:
Package vendor/old-package is abandoned, you should avoid using it. Use vendor/new-package instead.
建议采取以下措施:
composer.json,将旧包移除,添加新包composer remove vendor/old-package 再执行 composer require vendor/new-package
对于库的维护者,如果你计划停止维护某个包,请主动设置 abandoned 并推荐替代方案,这对生态中的其他开发者是一种负责任的做法。
以上就是composer如何处理包的废弃和替换(deprecation and replacement)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号