不能。composer show 只显示已安装包的名称、版本、描述和依赖关系,不包含更新日志;查日志需通过 GitHub/GitLab 的 CHANGELOG.md、composer.json 中的 homepage 字段或手动拼装 releases URL。

composer show 能看到更新日志吗
不能。composer show 只显示已安装包的名称、版本、描述和依赖关系,不包含任何变更记录或日志。它本质是读取 vendor/composer/installed.json,里面没有 commit history 或 release note。
真正能查到更新日志的三个方式
想确认某个包从 v2.1.0 升到 v2.2.0 到底改了什么,得绕过 Composer 自身命令,直接查源头:
- GitHub/GitLab 仓库的
CHANGELOG.md或RELEASES标签页(最常见,如monolog/monolog就放在这里) - 包的
composer.json里定义的homepage或support.source字段,通常指向其官方发布页(比如 Laravel 包会链到 laravel.com/docs) - 用
composer info vendor/package查出源码地址后,手动拼 GitHub URL:https://github.com/vendor/package/releases
composer outdated 显示的“最新可用版本”怎么对应到日志
composer outdated 会列出可升级的包和目标版本号,但它不提供链接或摘要。关键点在于:它只反映 packagist.org 上最近一次 composer update 可拉到的稳定版,和 Git tag 不一定完全同步——比如有些包发了 v3.0.0-rc1,但 Packagist 默认不索引预发布版,outdated 就不会显示它。
所以看到 symfony/console 5.4.36 → 6.4.8 时,应去 Symfony 官方 changelog 页面:https://github.com/symfony/console/blob/6.4/CHANGELOG.md,注意路径里的分支名要和目标版本匹配(6.4.8 对应 6.4 分支)。
插件(composer-plugin)的版本变化特别难查的原因
Composer 插件本身不参与自动加载,也不出现在 vendor/autoload.php 中,很多插件甚至没有独立仓库,而是直接嵌在主包里(比如 phpstan/phpstan 的插件逻辑就在主 repo 的 /src/Command 下)。更麻烦的是:
- 插件行为由
composer-plugin-api版本约束,不是看插件自身版本号 -
composer show --plugins只输出类名和启用状态,不带版本或源码位置 - 必须手动查
vendor/vendor/package/composer.json里的extra.plugin-class,再顺藤摸瓜找实现类所在的文件和 Git 提交历史
实际中,最省事的做法是:先运行 composer global show --plugins(如果是全局插件),再根据输出的类名反向 grep 源码,最后定位到该类所在 repo 的 releases 页面。










