Composer 2 的运行时依赖检查是在安装或更新后,验证已装包的 PHP 版本、扩展、函数/类及 conflict 是否满足当前环境;默认在 install/update 后及执行 check-platform-reqs 时触发,可通过参数或 config 配置控制。

Composer 2 的运行时依赖检查,本质上是在 安装或更新完成后,扫描已安装的包及其 composer.json 中声明的 require(非 require-dev),然后验证这些依赖是否真正在当前 PHP 环境中可加载、可执行。
不是检查版本号是否匹配(那是安装阶段干的事),而是检查:
"php": "^8.1")"ext-curl": "*"、"ext-mbstring": "*")ext-* 或 lib-* 声明的底层约束,实际较少见)conflict 是否被当前环境触发(例如冲突的 PHP 版本或扩展)默认开启,且发生在两个关键时机:
composer install 或 composer update 后,自动运行一次检查composer check-platform-reqs 手动触发(这个命令就是专门暴露该机制的)注意:它不会在每次 require 自动加载时重复检查,只在 Composer 管理生命周期的关键节点校验一次环境兼容性。
Composer 会读取每个已安装包的 composer.json,提取其 require 下的平台约束(即以 php、ext-、lib- 开头的条目),然后逐条比对当前运行环境:
PHP_VERSION_ID 和 version_compare() 校验 PHP 版本extension_loaded() 检查扩展是否启用function_exists() 或 class_exists()(仅针对极少数 lib-* 场景)只要有一项不满足,就会报错并中断操作(除非加 --ignore-platform-reqs 跳过)。
可以,主要通过三个方式:
--ignore-platform-reqs:跳过所有平台检查(危险,慎用)--ignore-platform-req=ext-gd:只忽略某一项(比如开发机没装 GD,但你确定不用)composer.json 中配置 "config": { "platform": { "php": "8.1.0" } }:伪造平台环境,让检查按指定值走(常用于 CI 或跨版本构建)基本上就这些。它不是魔法,只是 Composer 在交付前帮你做的一次“环境快照比对”。
以上就是Composer 2 中的运行时(runtime)依赖检查是如何工作的?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号