composer show 是查看已安装包版本、依赖、作者及源码地址的唯一核心命令,直接读取 composer.lock 或包元数据,响应快且可靠,但仅显示已安装或 lock 中存在的包。

composer show 查看包详情最直接
想确认某个包的版本、依赖、作者或源码地址,composer show 是唯一需要记住的命令。它不查文档、不翻 GitHub,直接读 composer.lock 或已安装的包元数据,响应快且结果可靠。
常见错误是输错包名(比如漏掉 vendor 名)或在没装包的目录下执行,结果返回“Package not found”。注意:它只显示已安装或 lock 文件里存在的包,未 require 过的包查不到。
- 查已安装的
monolog/monolog:composer show monolog/monolog - 查所有已安装包列表:
composer show(不带参数) - 加
-s参数显示简短摘要,适合快速扫视:composer show -s laravel/framework - 如果提示“Could not find package”,先确认是否在项目根目录,再运行
composer install或composer update确保 lock 文件最新
composer info 和 show 的区别在哪
composer info 是 composer show 的别名,两者完全等价,没有任何行为差异。Composer 官方文档里写的是 show,但源码中 info 被注册为同义命令——所以你用哪个都行,但建议统一用 show,避免团队协作时产生歧义。
容易被忽略的一点:这两个命令默认不显示包的 README 或 description 字段全文,只展示 composer.json 里的 description 字符串(通常很短)。真要看完整说明,得去 GitHub/GitLab 页面,或者用 composer show -a 查所有字段(含 readme 内容,但仅当包发布时把 README 嵌入了 metadata 才有)。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
-
composer show -a guzzlehttp/guzzle可能显示readme字段,但多数包为空 - 不要指望
show或info替代文档,它们只反映包的声明信息,不包含用法示例或 API 列表 - 若
composer show输出里没有source或dist字段,说明该包是 path repository 类型或本地开发模式引入的
为什么 composer show 不显示最新可用版本
composer show 默认只显示当前已安装(或 lock 文件锁定)的版本,不是远程最新版。这是设计使然:它面向“我用了什么”,而非“我能用什么”。想查远程最新稳定版,得用 composer show --all 或配合 composer outdated。
典型误操作是看到 symfony/console v5.4.36 就以为这是最新,其实 v6.x 已发布。这时候 composer show --all symfony/console 会列出所有可用版本(包括 RC、dev 分支),但输出较乱;更实用的是 composer outdated symfony/console,它只标出可升级项和推荐版本。
-
composer show --all会拉取 packagist 元数据,首次执行稍慢,后续走缓存 - 某些私有仓库或 VCS 包可能不支持
--all,会报Could not fetch... - 如果只想看稳定版(排除 alpha/beta/rc),加
--minor-only或手动过滤输出:composer show --all | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$'
包描述字段 description 太短怎么办
大多数包的 description 就一行,比如 "PHP HTTP client",根本看不出跟 Guzzle、Curl、HTTPlug 有什么区别。这不是命令的问题,是维护者写的就这水平。
真正有用的说明藏在包的 composer.json 的 homepage 或 support.source 字段里。用 composer show -a 能看到这些链接,然后手动打开——这才是最准的“扩展包说明”来源。
- 例如
composer show -a spatie/laravel-backup会显示homepage: https://spatie.be/docs/laravel-backup - 有些包把文档放
support.docs字段,一样能用-a暴露出来 - 如果所有字段都空,说明这个包要么极小众,要么维护不积极,谨慎引入生产环境
show 只回答“它是什么”,不回答“它好不好”。要不要用,还得看 issue 数量、最近 commit 时间、测试覆盖率,这些都没法靠一条命令解决。

















