composer install 根据 composer.lock 安装确定版本,确保环境一致,适用于部署和新成员搭建;composer update 忽略 lock 文件,按 composer.json 更新到最新兼容版本,用于主动升级依赖。

在使用 Composer 管理 PHP 项目依赖时,composer install 和 composer update 是两个最常用但容易混淆的命令。它们虽然都用于安装或更新依赖包,但作用机制和适用场景完全不同。
Composer Install:按锁定文件安装依赖
当你运行 composer install 时,Composer 会优先读取项目根目录下的 composer.lock 文件,并根据其中记录的精确版本号来安装依赖。
这意味着:
- 安装的每个包版本都是确定的,确保团队成员或不同服务器环境之间依赖一致
- 如果项目中没有 composer.lock 文件,Composer 会像执行 update 一样解析最新兼容版本,并生成新的 lock 文件
- 适合部署生产环境或新成员克隆项目后快速搭建一致开发环境
Composer Update:更新依赖到最新兼容版本
composer update 会忽略 composer.lock 文件,根据 composer.json 中定义的版本约束重新计算并安装最新的匹配版本。
这个过程会:
- 检查所有依赖及其子依赖的最新可用版本
- 升级到符合版本规则(如 ^1.2.0)的最新版
- 生成或更新 composer.lock 文件,记录新的版本信息
- 可能导致依赖版本跳跃,适用于主动升级第三方库
何时用哪个命令?
理解两者的差异后,可以更合理地选择使用时机:
- 新项目克隆下来,直接运行 composer install,确保使用团队统一的依赖版本
- 上线部署时使用 install,避免因自动升级引入不稳定变更
- 需要升级某个包(如修复安全漏洞),可运行 composer update vendor/package
- 更新全部依赖则执行 composer update,但需注意测试兼容性
基本上就这些。简单记:install 看 lock 文件,保持稳定;update 重新计算版本,用于升级。掌握这一点,就能避免很多依赖管理问题。










