Prestissimo 已废弃,Composer 2 原生支持并行下载;在 Composer 1 中强行启用易出错,因其依赖过时的 ext-curl 异步能力、与新版事件系统不兼容、不支持 HTTPS 代理透传,且 PHP 7.4+ 和内网代理环境下故障频发。

Prestissimo 已废弃,Composer 2 原生并行下载,强行在 Composer 1 中启用它反而容易出错
为什么 Prestissimo 在 Composer 1 里越来越难用
Prestissimo 是 Composer 1 时代的第三方插件,靠 fork 多个进程实现并行下载。但它依赖 ext-curl 的异步能力、与 Composer 1.7+ 的事件系统存在兼容问题,且不支持 HTTPS 代理透传。常见错误包括:Call to undefined method Composer\EventDispatcher\EventDispatcher::dispatchScript() 或静默卡在 Installing dependencies 阶段。
- Composer 1.10+ 默认禁用插件自动加载(需显式设
COMPOSER_ALLOW_SUPERUSER=1) - PHP 7.4+ 下部分版本会触发
cURL error 56: SSL read: errno -5961 - 公司内网走 HTTP 代理时,Prestissimo 经常跳过代理配置,直接连外网失败
Composer 1 用户该怎么做才稳定
放弃 Prestissimo,改用更轻量、更可控的替代方案:强制走国内镜像 + 关闭哈希校验(仅限可信环境) + 调整超时参数。
- 用
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/切换阿里云镜像 - 临时关闭校验提速:
composer install --no-scripts --no-plugins --optimize-autoloader - 增大超时避免中断:
export COMPOSER_PROCESS_TIMEOUT=3000(单位秒) - 如果必须用插件,只认
composer require hirak/prestissimo:^0.3(最高兼容到 Composer 1.6)
升级 Composer 2 是最省心的解法
Composer 2.0+ 内置并行下载(默认开 4 个并发),无需插件,且默认启用压缩传输、增量更新和更智能的依赖解析。升级后 composer install 速度普遍提升 2–5 倍,尤其对含大量 dev-dependency 的项目。
- 升级命令:
composer self-update --2(确保 PHP ≥ 7.2) - 检查是否生效:
composer --version输出应含2.x.x - 注意:某些老旧插件(如
fxp/composer-asset-plugin)不兼容 Composer 2,需迁移到yiisoft/jquery等原生包
真正卡住下载速度的,往往不是并发数,而是 DNS 解析慢、镜像源失效或本地 composer.json 里写了带通配符的不稳定版本约束(比如 "monolog/monolog": "^1.0 || ^2.0")。先跑一次 composer diagnose,比硬塞插件有用得多。











