# PHP 入门第十三课:Composer 是什么?现代 PHP 项目为什么离不开它?

举报
yd_220371319 发表于 2026/10/02 23:00:49 2026/10/02
【摘要】 如果你开始接触真实 PHP 项目,很快就会看到:```textcomposer.jsoncomposer.lockvendor/```这就是 Composer 生态。## Composer 是什么?Composer 是 PHP 的依赖管理工具。假设项目需要一个第三方库。传统方式可能是:```text下载文件复制代码修改路径手动更新```Composer 则可以管理这些依赖。## compos...


如果你开始接触真实 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 项目会轻松很多。

最后一篇,我们把前面学到的内容组合成一个小项目。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。