运行 composer --version 查看本地 composer 版本及构建时间,注意区分官方 phar 打包时间与安装时间;多版本共存时用 which/where 确认路径,结合 composer show --platform 和 diagnose 验证 php 环境与配置。

直接看当前 Composer 版本号
运行 composer --version 就能立刻看到你本地实际在用的 Composer 版本和构建时间,比如 Composer version 2.7.7 (2024-06-12 13:45:00)。注意:这不是安装时间,而是官方 PHAR 包被打包的 UTC 时间。
- 如果输出是
dev-main或类似字样,说明你用的是从源码手动构建的开发版,没有精确时间戳 - Windows 用户若同时装了 Composer-Setup 和手动下载的
composer.phar,可能因.bat文件调用错 PHP 导致卡住或报错 - 终端里执行
composer --version显示旧版本?大概率是PATH里有多个composer,老版本路径排在前面;用which composer(macOS/Linux)或where composer(Windows)确认真实路径 - 某些 IDE(如 PHPStorm)会自带封装器,默认绑定旧版 Composer,需在设置里手动指定可执行路径
查清楚到底用的是哪个 PHP 环境
Composer 是 PHP 脚本,它的行为完全取决于底层 PHP——版本、扩展(如 openssl、zlib)、内存限制等。只看 composer --version 没用,必须确认它跑在哪个 PHP 上。
- 运行
composer show --platform,会列出当前加载的 PHP 版本、已启用扩展、关键ini设置(如memory_limit) - 运行
composer diagnose,它会检查 PHP 兼容性、网络连通性、CA 证书路径,并给出明确修复建议 - 如果你用
php8.2 composer.phar --version显式指定解释器,那composer --version不会反映这点——必须用相同命令才能验证真实环境
查看项目里所有已安装依赖的版本
composer show 默认列出当前项目所有已安装包(含 require 和 require-dev),每行格式为 vendor/name version description,但不区分直接/间接依赖,也不显示层级关系。
- 只想看
composer.json里明确定义的依赖?加--direct:composer show --direct - 想看完整依赖树(比如确认
guzzlehttp/guzzle是被谁拉进来的)?用composer show --tree - 输出太长?配合
head -20或less:composer show | head -20 - 脚本中需要纯文本格式便于解析?加
--format=plain:composer show --format=plain monolog/monolog输出就是monolog/monolog 3.5.0这种两字段结构
查某个包的所有可用版本(远程最新)
想升级前先看看有哪些版本可选?或者确认某新版本是否已发布?别去网页翻,用命令就行。
- 查
monolog/monolog所有已发布版本(含dev-main、beta、3.5.0):composer show -a monolog/monolog。-a(即--all)强制跳过本地缓存,直连 Packagist API - 只想提取版本号列表?用 JSON +
jq最干净:composer show -a --format=json monolog/monolog | jq -r '.versions | join("\n")';没jq就用grep+cut粗略提取 - 查完发现缺新版本?可能是 Packagist 镜像同步延迟,或本地网络访问受限;换用
--remote参数(部分版本支持)或直接访问 packagist.org 验证 - 注意:
composer show vendor/package(不带-a)只显示本地缓存或已安装过的版本,不一定全
最容易被忽略的是:你以为在用新版 Composer,其实 PATH 里藏着个老版本;你以为查到了最新包版本,其实只是本地缓存没刷新。动手前先 which composer 和 composer show -a,省掉一半排查时间。










