composer show 能直接查包的详细信息,指定包名可查看版本、作者、依赖、description等元信息;--all查远程所有版本,--tree显示依赖树,-s展示autoload和scripts。

composer show 能直接查包的详细信息
想确认某个包的版本、依赖关系、作者和描述,composer show 是最直接的方式。它不下载也不安装,只读取已有的 composer.lock 或 packagist 元数据。
常见用法:
-
composer show monolog/monolog—— 查指定包的当前安装版本及元信息(需已安装) -
composer show --all monolog/monolog—— 查该包在 Packagist 上所有可用版本(不依赖本地是否安装) -
composer show -t—— 显示当前项目完整依赖树,适合排查冲突源头
注意:--all 会触发网络请求,如果包名拼错或网络不通,会卡顿几秒后报 Could not find package xxx,不是命令写错了。
packagist.org 页面比 CLI 更直观看兼容性
CLI 查到的信息偏技术向,但真正做选型时,PHP 版本支持、LTS 状态、更新频率这些,页面上一眼就能扫完。
关键信息位置:
- 右上角的
Requires PHP字段,比如显示^8.0 || ^8.1,说明不支持 PHP 7.x - “Versions” 标签页里带
LTS标记的版本,长期维护更稳 - “Source” 链接跳转到 GitHub,看最近一次 commit 时间,判断是否活跃维护
别只信 README 里写的 “supports PHP 7+”,实际点开 composer.json 文件看 require.php 字段才准。
composer depends 查谁依赖了这个包
当你想删掉一个包,又怕影响其他组件时,composer depends 能快速定位调用链。
例如要下掉 symfony/polyfill-ctype:
-
composer depends symfony/polyfill-ctype—— 列出直接依赖它的包 -
composer depends --tree symfony/polyfill-ctype—— 展开多层依赖路径
注意:这个命令只检查已安装的包。如果某包只是在 require-dev 里,而你没运行过 composer install --dev,它就不会出现在结果里。
vendor/composer/installed.json 是本地真实快照
所有通过 Composer 安装的包,最终都记录在这个文件里。它比 composer show 更底层、更确定——没有缓存、不走网络、不解析远程元数据。
里面的关键字段:
-
name和version:精确到 commit hash 或 dev-master 的具体提交 -
type:是library还是metapackage,后者通常只是依赖集合,不能直接用 -
autoload:确认类是否能被自动加载,比如缺psr-4映射就可能报Class not found
这个文件内容会随 composer update 实时更新,但很多人忘了它才是“此刻项目里到底有什么”的唯一权威来源。











