跳转到主内容
极星编程网:以代码为星,赴技术山海!

Composer的show -p命令能看到什么系统信息_Composer内置平台包查看【手册】

composer show -p 不显示系统信息,仅输出已安装包的符号链接路径;正确查看PHP环境应使用 composer show --platform,它返回实际运行时的PHP版本、扩展、库及ini配置。
composer show -p
不显示任何系统信息,它只输出已安装包的符号链接路径(如果存在),且完全不涉及 PHP 版本、扩展、OS 类型或环境变量。 为什么
show -p
容易被误认为能查系统信息 很多人看到
-p
就联想到 “platform” 或 “path”,但这里的
p
实际是
--package
的旧别名残留(Composer 1.x 时期),在 2.x 中已被弃用;当前行为是
--path
的简写,仅作用于包路径查询。 执行
composer show -p php
或
composer show -p ext-mbstring
会直接报错
Package not found
—— 因为
php
和扩展不是 Composer 包,不在
vendor/
下安装
composer show -p
必须后接真实安装的第三方包名,如
monolog/monolog
,否则无输出 它不读取
composer.json
的
platform
配置段,也不校验当前 PHP 是否满足该配置
composer show --platform
才是查系统环境的正确命令 真正返回 PHP 运行时信息的是
--platform
选项,它列出 Composer 当前调用的 PHP 解释器所暴露的全部平台能力:
php.version
:实际运行的 PHP 版本(如
8.1.13
),不是
composer.json
里写的
config.platform.php
ext-*
列表:已加载的扩展名及版本(如
ext-openssl 8.1.13
),缺失项会直接标为
missing
lib-*
条目:底层库支持(如
lib-curl
,
lib-zlib
)
memory_limit
、
max_execution_time
等 ini 设置值 这个命令等价于让 Composer 主动调用
php -r "print_r(get_loaded_extensions());"
并结构化输出,结果可信度高,适合部署前核对 ThinkPHP 或 Laravel 的环境要求。 想看 Composer 自身依赖的 PHP 版本范围?别用
show
,改用
show --self
加过滤
composer show --self
显示 Composer 自身的元数据,其中
require.php
字段才是它声明的最低 PHP 兼容版本: Composer 2.9.6 Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。 下载
composer show --self | grep "require.php"
输出类似:
"require": {"php": "^7.2.5 || ^8.0"}
。注意这和你本地 PHP 版本无关,只是 Composer PHAR 构建时的约束声明。 若需确认当前 Composer 是否能在你的 PHP 上跑,应优先跑
composer diagnose
,它会把
require.php
声明和实际
php -v
结果做比对并明确提示 OK 或 FAIL。 总结一句:别指望
show -p
告诉你系统信息,它连当前目录在哪都不关心 它的输出就是一行路径,而且还是可能指向缓存目录的软链;真要排查环境兼容性,
composer --version
看自身、
composer show --platform
看 PHP、
composer diagnose
做全检——三者各司其职,混用只会浪费时间。

相关文章