Prestissimo仅兼容Composer 1.x(1.0.0–1.10.x),通过改写CurlRemoteFilesystem.php实现并行下载,提升速度超10倍;Composer 2已原生支持并行下载,安装Prestissimo会冲突并触发警告,官方建议卸载。

为什么Prestissimo对Composer 1.x有效,但别在Composer 2上装
Prestissimo 是专为 Composer 1.x(1.0.0–1.10.x)设计的并行下载插件,它通过改写 CurlRemoteFilesystem.php 实现多线程并发拉取包,把顺序下载变成“多个包同时下”。实测大型项目从 288秒 降到 26秒,提升超10倍。但 Composer 2 原生已内置并行下载和更优的依赖解析器,再装 Prestissimo 不仅无效,还会触发警告甚至冲突——官方明确建议卸载:composer global remove hirak/prestissimo。
全局安装Prestissimo的正确命令和验证方式
推荐全局安装,所有项目自动受益,命令只有一行:composer global require hirak/prestissimo
执行后插件会注入到全局 vendor/ 目录,并在每次 composer install 或 composer update 时静默启用,无需额外配置。验证是否生效:
• 运行 composer diagnose,检查输出中是否含 hirak/prestissimo 插件信息
• 执行 composer clear-cache && composer install -vvv,观察日志里是否出现多条 Downloading 并发请求(而非逐行等待)
• 若没反应,大概率是缓存未清或 Composer 版本不兼容(比如误用 Composer 2)
必须配合的三项加速配置,否则Prestissimo效果打折
Prestissimo 只解决“怎么下得快”,但“从哪下”和“能不能下”还得靠配套设置:
• composer config -g github-oauth.github.com :GitHub API 限流很严,没 token 时每小时最多 60 次请求,加 token 后升至 5000+,避免中途卡住
• composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/:国内镜像源直连比走境外 CDN 快 3–5 倍,且稳定不超时
• 确保 PHP 已启用 curl 扩展(Prestissimo 依赖它),运行 php -m | grep curl 确认存在
常见失效场景与排查线索
装了却没提速?先看这几个硬性条件是否满足:
• 当前 Composer 版本是否真的 ≤1.10.x?运行 composer --version 确认,别被 alias 或 shell wrapper 误导
• 全局 vendor 路径是否在 $PATH 中?composer global config --list 查看 home 路径,再确认该路径下的 bin/ 是否已加入环境变量
• 项目级配置是否禁用了插件?检查项目 composer.json 里有没有 "disable-tls": true 或 "plugin-api-version" 错误值
• 防火墙或代理是否拦截了并发连接?部分企业网络会限制多线程 HTTP 请求,可临时关代理测试










