composer 没有内置 suggests 命令;需用 composer show 包名 查看单个包的 suggests 字段,或结合脚本解析 installed.json 批量提取;suggests 是可选扩展提示,不自动安装,需手动 composer require 启用。

Composer 的 suggests 命令并不是一个内置的独立命令,它并不存在于 Composer 的官方命令列表中。你真正想用的,是查看当前项目中各已安装包所“建议”(suggest)的可选依赖 —— 这些信息定义在每个包的 composer.json 文件里,属于提示性内容,不自动安装,但常用于功能扩展或增强体验。
通过 composer show 查看某个包的 suggests
最直接的方式是用 composer show 加上包名,它会列出该包的详细信息,包括 suggests 字段:
composer show monolog/monolog- 输出中会看到类似:
suggests: aws/aws-sdk-php (Allow sending logs to AWS services like CloudWatch)
批量查看所有已安装包的 suggests(需配合脚本或工具)
Composer 本身不提供一键汇总所有 suggests 的命令,但你可以这样快速提取:
- 运行
composer show --installed --no-ansi | grep -A 1 "suggests:"(linux/macOS) - 或使用小工具:安装 composer-unused 或自定义 php 脚本解析
vendor/composer/installed.json,读取每个包的suggests键 - 注意:部分包可能把
suggests写成多行或带注释,原始 JSON 更可靠
理解 suggests 的实际用途(不是 bug,而是扩展指引)
suggests 是包作者写的“锦上添花”提示,常见于:
- 日志库建议搭配特定驱动(如 Monolog + redis、elasticsearch)
- 测试工具建议配套断言库或覆盖率工具
- 框架组件建议对应缓存、队列、邮件等适配器
- 这些包不会被自动 require,但装上后,原包可能自动启用增强功能
手动触发建议安装(按需添加)
看到有用的 suggest 后,你可以主动安装:
composer require aws/aws-sdk-php- 安装后,Monolog 等包通常会检测环境并自动启用对应功能(无需额外配置)
- 如果没生效,查文档确认是否需要显式启用(比如调用
MonologHandlerCloudWatchLogsHandler)
基本上就这些。Composer 不提供 suggests 专用命令,但靠 show 和一点小技巧,就能高效发现可选扩展点。