composer audit --abandoned 是唯一能实时反映废弃状态的命令,它只读取 composer.lock 和 Packagist 元数据中的 abandoned 字段,输出明确如“vendor/old-package is abandoned, use vendor/new-package instead”,且受 config.ignore-abandoned 配置影响;无输出不等于无废弃包,需结合 composer show -a、grep -A1 -B1 '"abandoned"' composer.lock 及官方源验证综合判断。

composer audit --abandoned 是唯一能实时反映废弃状态的命令
它不联网查漏洞库,也不依赖镜像缓存,只读 composer.lock 和 Packagist 元数据里的 abandoned 字段。输出干净明确,比如:vendor/old-package is abandoned, use vendor/new-package insteadvendor/legacy-helper is abandoned, no replacement provided
没输出 ≠ 没废弃包,得先检查是否配置了 config.ignore-abandoned —— 这个配置会让该包彻底从输出中消失。
composer show -a 才能看到真正的 abandoned 字段值
composer show vendor/package 默认压根不显示废弃信息,哪怕包已被标记为废弃。必须加 -a(小写,不是 --all):
返回 abandoned : true 或 abandoned : psr/log 才算确认废弃及替代路径
返回 abandoned : null 在 Packagist v2 协议下也代表明确废弃
别信终端里一闪而过的黄色提示——它可能来自旧缓存,或只是上游依赖的间接提示
composer update --dry-run -v 是唯一能触发运行时弃用警告的方式
PHP 层面的 trigger_error(E_USER_DEPRECATED) 不会在 composer install 里出现,只有 composer update --dry-run -v 会加载 autoloader 并捕获这些警告。
输出里以 Deprecated: 开头的行才是真实运行时弃用点
若某包在 composer.json 中声明了 "replace": {"old/package": "self.version"},说明它已被正式替代
有些弃用只在代码执行时触发(如 Laravel 的 facade 类),这时需配合 php -d error_reporting=32767 -r "require 'vendor/autoload.php';" 手动验证
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
grep -A1 -B1 '"abandoned"' composer.lock 是最准的快照依据
composer.lock 里每条包记录的 abandoned 字段是 Composer 解析那一刻写死的快照,不受 vendor 目录变动影响。
执行 grep -A1 -B1 '"abandoned"' composer.lock 可直接看到当前锁文件中所有废弃标记
如果输出为空,说明该包在解析时未被标记;若有,就代表它当时已被废弃
镜像源(如阿里云)可能缓存旧元数据,导致警告延迟,此时可临时切回官方源验证:composer config -g repo.packagist composer https://packagist.org
废弃状态不是“有没有”的二值判断,而是“谁标记的、何时标记的、是否被忽略、是否被覆盖”的多层叠加。最容易被跳过的是 config.ignore-abandoned 配置和 composer.lock 里的快照时效性——这两处不查,其他所有命令都可能给你错觉。

















