composer require 和 composer install 是两个不同的 Composer 命令,它们的作用和使用场景不同:
1️⃣ composer require:添加和安装新依赖
composer require 用于将新的依赖包添加到项目中,并自动将它们加入 composer.json 文件的 require 或 require-dev 部分,同时下载和安装这些依赖。
主要功能:
- 添加依赖:将新依赖添加到
composer.json文件中。 - 安装依赖:下载并安装新增的依赖包。
- 更新
composer.lock文件:如果依赖被成功安装,composer.lock会被更新。
示例:
composer require monolog/monolog
这会:
- 将
monolog/monolog包添加到composer.json文件的require部分。 - 下载并安装
monolog/monolog包。
你还可以指定版本,或者安装开发依赖:
composer require --dev phpunit/phpunit
2️⃣ composer install:安装 composer.json 中的所有依赖
composer install 用于根据 composer.json 文件安装项目中列出的所有依赖包。它不会改变 composer.json 或 composer.lock 文件,而是安装它们中指定的依赖。
主要功能:
- 安装所有依赖:根据
composer.json和composer.lock中列出的依赖来安装所有必需的依赖包。 - 不改变
composer.json:不会修改composer.json文件,只会安装已经列出的依赖。 - 使用锁文件:如果存在
composer.lock文件,composer install会安装锁文件中记录的版本,而不管composer.json中的版本要求。
示例:
composer install
这会:
- 根据
composer.json文件和(如果存在)composer.lock文件安装所有依赖。 - 如果没有
composer.lock文件,Composer 会使用composer.json中的版本要求来解析依赖并安装。
区别总结:
| 命令 | 作用 | 用法场景 |
|---|---|---|
composer require |
添加新依赖到 composer.json,并自动安装依赖。 |
安装新的依赖包,并将它们添加到项目中。 |
composer install |
安装 composer.json 中列出的所有依赖包,确保依赖已正确安装(根据 composer.lock 或 composer.json)。 |
安装和同步现有的依赖,通常用于克隆的项目或 CI/CD 环境中。 |
总结:
composer require用于安装 新的依赖。composer install用于 安装项目中已列出的所有依赖。