# PHP 入门第十三课:Composer 是什么?现代 PHP 项目为什么离不开它?
如果你开始接触真实 PHP 项目,很快就会看到:
```text
composer.json
composer.lock
vendor/
```
这就是 Composer 生态。
## Composer 是什么?
Composer 是 PHP 的依赖管理工具。
假设项目需要一个第三方库。
传统方式可能是:
```text
下载文件
复制代码
修改路径
手动更新
```
Composer 则可以管理这些依赖。
## composer.json
一个简单例子:
```json
{
"require": {
"monolog/monolog": "^3.0"
}
}
```
然后运行:
```bash
composer install
```
Composer 会安装依赖。
## vendor
安装后通常会出现:
```text
vendor/
```
第三方依赖就在这里。
一般不要把 `vendor/` 当作自己编写的源代码。
## 自动加载
Composer 可以生成自动加载文件:
```php
require __DIR__ .
"/vendor/autoload.php";
```
之后就可以使用符合规范的第三方类。
## composer.lock
`composer.json` 描述允许使用哪些版本。
`composer.lock` 则记录这次安装最终确定的具体依赖版本。
因此应用项目通常应该提交:
```text
composer.json
composer.lock
```
## require 和 require-dev
生产依赖:
```json
{
"require": {
"..."
}
}
```
开发依赖:
```json
{
"require-dev": {
"..."
}
}
```
例如测试工具通常属于开发依赖。
## 为什么 Composer 很重要?
现代 PHP 项目往往不是一个 PHP 文件。
可能是:
```text
项目
├── 应用代码
├── 第三方库
├── 配置
├── 测试
└── 自动加载
```
Composer 把依赖管理标准化了。
## Git 项目中的 vendor
很多 PHP 项目不会提交:
```text
vendor/
```
而是提交:
```text
composer.json
composer.lock
```
部署时执行:
```bash
composer install --no-dev
```
由服务器重新安装依赖。
具体策略需要根据项目和部署环境决定。
## 小结
Composer 可以理解为:
> PHP 世界的依赖管理工具。
学会 Composer 后,再接触 Laravel、Symfony 等现代 PHP 项目会轻松很多。
最后一篇,我们把前面学到的内容组合成一个小项目。
- 点赞
- 收藏
- 关注作者
评论(0)