Composer 默认不安装 suggests 中的包,因属可选建议;可通过手动添加至 require、使用 composer-suggest-plugin 插件交互安装,或检查该建议是否已被作者移入 require/require-dev 三种方式实现自动安装。

Composer 默认不会安装 suggests 字段中列出的包,因为这些只是可选建议,不是功能必需的依赖。想让它们被自动安装,没有直接开关,但有几种实用方式可以实现类似效果。
手动添加建议包到 require 中
最直接可靠的方式:查看目标包的 composer.json,找到它的 suggests 列表,把其中你想要的包显式加进你项目的 require(或 require-dev)里。
- 例如某包建议
"phpunit/phpunit": "^9.0",你就运行:composer require phpunit/phpunit:^9.0 --dev - 这样它就变成正式依赖,每次 install/update 都会安装
使用插件(如 composer-suggest-plugin)
社区有第三方插件可以自动处理 suggests,比如 boekkooi/composer-suggest-plugin。
- 安装插件:
composer global require boekkooi/composer-suggest-plugin - 之后运行
composer install或composer update时,它会提示你是否安装建议项,支持交互选择或配置为自动接受 - 注意:插件行为依赖版本兼容性,需确认是否适配你当前 Composer 版本(尤其是 Composer 2.x+)
检查包是否把建议“升级”为真实依赖
有些包作者会把原本在 suggests 里的关键扩展,移到 require 或 require-dev 中(尤其当该功能已成为默认启用路径)。你可以:
- 查该包最新版的
composer.json(GitHub 或 Packagist 页面) - 看文档是否说明“自 vX.Y 起需手动安装 XX 才支持 YY 功能”——这往往意味着它已不再是纯建议
- 有时只需装一个 bridge 包(如
symfony/monolog-bundle)就能连带拉取对应日志驱动
基本上就这些。Composer 的设计哲学是明确区分“必须”和“可选”,所以 suggests 不会默认安装,这是有意为之。按需手动加、用插件辅助、或确认是否已被作者“转正”,三种方式够用了。










