直接依赖是你在 composer.json 的 require 或 require-dev 中手动添加的包,如 monolog/monolog 和 guzzlehttp/guzzle;执行 composer outdated --direct 会列出这些直接依赖中可更新的版本,帮助你及时获取新功能、修复安全漏洞、避免技术债务,并通过查看变更日志评估升级风险,结合 composer show 和 composer update 可安全高效地维护项目依赖。

当你运行 composer outdated --direct 时,Composer 会列出项目中所有直接依赖(即你在 composer.json 中明确声明的包)中存在更新版本的情况。它帮助你快速识别哪些直接安装的包已经不是最新稳定版本,便于你评估是否需要升级。
什么是直接依赖?
直接依赖是你在项目根目录的composer.json 文件中通过 require 或 require-dev 手动添加的包。比如:
{
"require": {
"monolog/monolog": "^2.0",
"guzzlehttp/guzzle": "^7.0"
}
}
这里的 monolog/monolog 和 guzzlehttp/guzzle 就是直接依赖。而这些包各自依赖的其他库则是“间接依赖”或“嵌套依赖”。
--direct 参数的作用
默认情况下,composer outdated 会显示所有过期的包,包括间接依赖,信息量较大。加上 --direct 参数后,只关注你直接管理的包,结果更聚焦,更适合日常维护。
例如输出可能如下:
monolog/monolog 2.0.0 -> 2.11.0 Sends your logs to files, sockets, inboxes, databases and various web services guzzlehttp/guzzle 7.0.0 -> 7.8.1 Guzzle is a PHP HTTP client library这说明这两个直接安装的包都有新版本可用,你可以根据项目情况决定是否升级。
为什么需要检查直接依赖的更新?
定期查看直接依赖是否过期,有助于: 但注意:看到有新版不代表必须立即升级。需查看变更日志(changelog),确认新版本是否引入不兼容修改,是否影响当前项目逻辑。实用建议
推荐在开发环境中定期执行:composer outdated --direct结合使用以下命令查看更多信息:
-
composer show 包名查看某个包的详细信息 -
composer update 包名升级指定包(建议先在测试环境验证) - 使用
--minor或--patch限制更新范围,降低风险
基本上就这些。用好 composer outdated --direct,能让你更清晰地掌握项目核心依赖的状态,维护更省心。










