换镜像源后必须执行composer clear-cache,因本地缓存可能仍含旧源(如packagist.org)的过期元数据,导致安装时未走新镜像;生产环境composer install必加四参数:--no-dev --prefer-dist --optimize-autoloader --classmap-authoritative。

换镜像源后为什么还要执行 composer clear-cache
换源只是改了元数据请求地址,但 Composer 本地缓存里可能还存着旧的 packagist.org 响应(比如过期的 packages.json),下次 install/update 时会优先读缓存,结果仍去海外源校验或触发回退逻辑。执行 composer clear-cache 才能真正清空这些“带路径记忆”的缓存条目。不清理,阿里云镜像可能只加速了 20%,而不是 80%。
composer install 必加的四个参数组合
生产环境部署或 CI 构建中,这组参数是提速底线:
-
--no-dev:跳过require-dev下所有包(如phpunit、phpstan),省掉 30%~60% 解析时间 -
--prefer-dist:强制走 ZIP 包而非 Git 克隆,避免 SSH 认证、分支切换、稀疏检出等开销 -
--optimize-autoloader:生成vendor/autoload.php时预编译类映射,减少运行时文件扫描 -
--classmap-authoritative:告诉自动加载器“类不在 classmap 里就真不存在”,彻底跳过 PSR-4 自动发现——注意:开发机上误用会导致新增类不被识别
命令示例:composer install --no-dev --prefer-dist --optimize-autoloader --classmap-authoritative
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
为什么 ini_set('max_execution_time', 0) 对 Composer 完全无效
Composer 是 CLI 工具,运行在 PHP 的 CLI SAPI 模式下,它不读 php.ini 的 Web 配置段,也不受脚本内 ini_set() 影响(多数运行时配置项在 CLI 下是只读的)。PHP 超时报错 Fatal error: Maximum execution time of 30 seconds exceeded 真正该调的是 CLI 模式的配置:
- 查当前 CLI 配置:
php -i | grep "max_execution_time" - 临时覆盖:
php -d max_execution_time=0 /usr/bin/composer install - 但更关键的是:超时只是表象,95% 的 case 根子在镜像源和缓存——调高 timeout 只是让失败来得更慢
禁用 Xdebug 和 opcache.enable_cli=1 这两个隐藏减速器
Xdebug 在 CLI 下会让 Composer 解析依赖树慢 5–10 倍;而 opcache.enable_cli=1 在 PHP 8.2+ 中反而拖慢 Composer 自身加载(因 opcode 缓存对短生命周期 CLI 脚本收益极低,却增加验证开销):
- 临时禁用 Xdebug:
XDEBUG_MODE=off composer install或php -d zend_extension= -d xdebug.mode=off /usr/bin/composer install - 确认 opcache CLI 关闭:
php -i | grep "opcache.enable_cli",输出应为opcache.enable_cli => Off - 别信“开了总比没开好”——CLI 场景下这两个扩展就是负优化










