必须用composer config -g全局配置镜像源,而非改项目composer.json;PHP 8.2下下载慢主因是直连不可达的packagist.org,需切阿里云或华为云源并执行clear-cache。

换镜像源必须用 composer config -g,不是改项目里的 composer.json
PHP 8.2 环境下 Composer 下载慢,90% 是因为还在直连 https://packagist.org。DNS 污染、TLS 握手卡顿、CDN 路由绕行,导致下载卡在 Downloading (0/xx) 不动——这不是你带宽问题,是源本身不可达。
全局切换镜像才真正生效:
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(阿里云,同步稳、延迟低) -
composer config -g repo.packagist composer https://repo.huaweicloud.com/composer/(华为云,北方用户可优先试)
别碰 packagist.phpcomposer.com:它已在 2025 年底停更,现在返回 404 或空响应是常态。切完立刻执行 composer clear-cache,否则 Composer 还在读旧的海外元数据。
parallel-downloads 在 PHP 8.2 + Composer 2.2+ 上必须设,但值不能瞎调
PHP 8.2 通常搭配 Composer 2.2+(运行 composer --version 确认),这时 parallel-downloads 是原生支持的并发机制,不是插件,也不是“多线程”——它靠 cURL multi 同时拉多个 ZIP 包。
立即学习“PHP免费学习笔记(深入)”;
默认值是 3,基本等于没开。要手动设高:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局启用:
composer config -g parallel-downloads 10(10 是多数机器合理上限) - 设成 20 容易触发
file_put_contents(/tmp/): failed to open stream,说明临时文件竞争严重,降到 6–8 更稳 - 这个配置对
composer install有效,但对composer update几乎无效——依赖图计算仍是串行的
注意:http-max-concurrent-downloads 是新版中替代参数,但目前仍兼容 parallel-downloads;若已设后者,前者无需重复配。
PHP 8.2 下 --prefer-dist 和 --no-dev 不是可选项,是必加项
PHP 8.2 的 autoloader 优化和扩展兼容性更好,但 Composer 若误走 --prefer-source(比如包只有 dev-main 分支),就会 clone Git 仓库,I/O 和网络开销暴增。
生产或 CI 场景务必加:
-
--prefer-dist:强制走 ZIP 包,跳过 Git,解压快、校验快、vendor 更干净 -
--no-dev:跳过require-dev中所有包(如phpunit、infection),省掉 30–60% 时间 - 组合使用:
composer install --prefer-dist --no-dev --optimize-autoloader
如果项目里硬写了 "platform": {"php": "7.4"},Composer 会主动降级选包,拖慢整个流程。运行 composer show --platform 确认解析出的 PHP 版本是否为 8.2,否则删掉 platform 配置。
镜像源生效了,但还卡在某个包?先看是不是私有包或证书问题
阿里云/华为云镜像只加速 Packagist 官方索引下的 ZIP 包下载。以下情况它不负责:
- 私有 VCS 包(
"type": "vcs")走的是你配的 Git 地址,不受镜像影响 - 自定义
"type": "package"的 JSON 清单,也是直连你给的 URL - 遇到
curl error 60或证书报错,不是镜像问题,是本地 OpenSSL/cURL 信任链旧:可临时关校验composer config -g secure-http false(仅调试),或升级系统ca-certificates
真卡住时,别猜,直接加 -v 看日志:composer install -v,输出最后一行停在哪一步——是 DNS 解析失败?TLS 握手超时?还是写入 vendor/ 时被杀毒软件拦截?这些才是实际瓶颈点。


















