
当 Composer 显示 "Loading from cache" 时,表示它正在从本地缓存中读取已下载的包信息或文件,而不是重新从远程服务器获取。这种机制能显著加快依赖安装和更新的速度,并减少网络请求。
Composer 缓存的工作原理
Composer 在运行过程中会自动将远程仓库中的包元数据和实际的代码包(如 ZIP 文件)保存到本地缓存目录中,后续操作若需要相同内容,就直接使用缓存版本。
缓存分为两种类型:
- 文件缓存(files/cache):存储从 VCS(如 GitHub)克隆的源代码或下载的 ZIP 压缩包。
-
元数据缓存(cache/repo):存储包的
composer.json、版本列表、分支信息等结构化数据。
当你执行 composer install 或 composer update 时,Composer 会先检查目标包是否已在缓存中存在且未过期。如果满足条件,就会显示 "Loading from cache" 并跳过网络下载。
缓存命中与失效机制
Composer 不是无条件使用缓存,而是通过以下方式判断是否可安全加载:
- 对于 dist 包(如 ZIP),Composer 检查其完整性哈希值(如 sha1)是否匹配,若一致则使用缓存。
- 对于 source 类型(如 Git 克隆),会检查最后一次抓取时间,若在一定时间内(默认约15分钟内)不会重复拉取。
- 如果你运行了
composer clear-cache或手动删除缓存目录,下次就会重新下载。
缓存位置与配置
默认情况下,Composer 的全局缓存路径位于:
- Linux/macOS:
~/.cache/composer - Windows:
C:\Users\username\AppData\Local\Composer\cache
你可以通过以下命令查看当前缓存路径:
composer config --list | grep cache也可以在 composer.json 或全局配置中自定义缓存目录,例如:
如何控制缓存行为
虽然缓存提升效率,但在某些场景下你可能希望绕过它:
-
composer install --no-cache:临时禁用缓存,强制所有内容从网络获取。 -
composer clear-cache:清空整个缓存,适用于缓存损坏或想彻底刷新环境。 - 设置环境变量
COMPOSER_CACHE_DIR可临时指定缓存路径,适合 CI/CD 场景。
基本上就这些。Composer 的缓存设计在保证可靠性的前提下最大化复用已有资源,“Loading from cache” 是正常且理想的行为,说明你的环境运行高效。除非遇到问题,一般无需干预。










