composer show 是导出项目包清单最直接方式,支持 --tree、--format=json 等参数;composer outdated 检查过期与安全风险;务必用 --all 和 --format=json 获取全量结构化数据,避免插件或手工维护。

composer show 生成基础包清单最直接
想快速导出当前项目所有已安装的包及其版本,composer show 是最轻量、最可靠的方式。它不依赖额外插件或配置,直接读取 vendor/composer/installed.json,输出稳定且格式清晰。
常见错误是误用 composer list(只列命令)或 composer info(已废弃)。实际使用时注意:
-
composer show默认只显示顶层依赖;加--tree可展开依赖树,但对文档系统来说通常冗余 - 若需机器可读格式,优先用
composer show --format=json,而非解析文本输出 - 避免在未
composer install的项目中运行——此时vendor/不存在,会报错Could not find package
composer outdated 检查过期包并标记安全风险
文档系统常需说明“当前使用的是否为推荐版本”,这时不能只列版本号,还得标注是否过时或存在已知漏洞。composer outdated 就是为此设计的。
它默认只显示有更新的包,但配合参数能精准服务文档需求:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer outdated --direct:仅列出composer.json中声明的顶层包,排除传递依赖,适合写进 README 或集成文档 -
composer outdated --minor-only:过滤掉仅补丁更新(如 2.1.0 → 2.1.1),聚焦语义化版本中的小版本升级,降低文档维护噪音 - 加
--format=json后可被 CI 脚本消费,自动标红高危 CVE 包(Composer 2.2+ 自动关联 packagist.org 的安全通告)
用 composer show --all --format=json 导出全量结构化数据
很多文档系统(比如 MkDocs + mkdocstrings-php、Docusaurus 插件)需要结构化输入,而不是人眼可读的表格。composer show --all --format=json 是唯一能一次性导出全部包元信息的原生命令。
注意几个关键点:
-
--all强制包含require-dev中的包(如phpunit/phpunit),否则开发依赖会被漏掉 - 输出 JSON 中每个包含
name、version、description、source、dist等字段,description可直接用于文档的“用途说明”栏 - 别用
composer dump-autoload --optimize之后再执行——这个操作不影响show输出,纯属干扰项
避免用 composer dependents 或第三方插件替代核心命令
有人会搜 “composer list dependencies for docs”,然后装 hirak/prestissimo 或 roave/security-advisories 来生成清单,这是典型路径错误。dependents 命令根本不存在(Composer 没这功能),而插件往往只解决单一场景(如安全扫描),反而让文档数据源碎片化。
真正要控制文档可信度,关键是统一源头:
- 所有文档中的包列表必须来自
composer show --format=json的实时快照,而非手工维护的 Markdown 表格 - CI 流程中可在部署前跑一次
composer show --direct --format=json > docs/dependencies.json,让文档系统直接读取该文件 - 如果项目用了
platform配置(如强制"php": "8.1.0"),show不会体现——这部分得单独从composer.json提取,容易被忽略










