Composer #
什么是 Composer? #
Composer 是 PHP 的依赖管理工具。它允许你声明项目所依赖的库,并为你管理(安装/更新)它们。Composer 不是包管理器,而是依赖管理器,它会在项目中安装项目依赖的库。
文档结构 #
本指南按以下结构组织,循序渐进地帮助你掌握 Composer:
1. 入门基础 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Composer 简介 | Composer 的定义、特点、安装与基本使用 | intro.md |
2. 核心功能 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 基本使用 | 基本命令、安装依赖、版本约束 | basic-usage.md |
| 依赖管理 | composer.json 详解、依赖类型、版本控制 | dependencies.md |
3. 进阶功能 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 自动加载 | PSR-4 自动加载、类映射、文件加载 | autoloading.md |
| 脚本与钩子 | 脚本定义、事件钩子、自定义命令 | scripts.md |
4. 高级特性 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 高级特性 | 私有仓库、平台配置、优化技巧 | advanced.md |
5. 最佳实践 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 最佳实践 | 项目结构、版本策略、团队协作 | best-practices.md |
学习路径 #
入门阶段(Composer 新手) #
- 了解 Composer 的基本概念和优势
- 安装 Composer 工具
- 掌握基本命令:install、update、require
- 理解 composer.json 和 composer.lock
- 创建第一个 Composer 项目
进阶阶段(Composer 熟练) #
- 深入学习版本约束语法
- 掌握依赖类型的使用场景
- 理解自动加载机制
- 学会使用脚本和钩子
- 配置国内镜像加速
高级阶段(Composer 专家) #
- 掌握私有仓库配置
- 理解依赖解析算法
- 优化 Composer 性能
- 处理依赖冲突
- 发布自己的包
大师阶段(Composer 大师) #
- 构建企业级 PHP 项目架构
- 设计可复用的 PHP 库
- 参与开源社区贡献
- 解决复杂的依赖问题
- 定制 Composer 插件
Composer vs PEAR vs 手动管理 #
| 特性 | Composer | PEAR | 手动管理 |
|---|---|---|---|
| 依赖管理 | ✅ 完整 | ✅ 基础 | ❌ 无 |
| 版本约束 | ✅ 灵活 | ❌ 单一版本 | ❌ 无 |
| 项目隔离 | ✅ 是 | ❌ 全局 | ✅ 是 |
| 自动加载 | ✅ 内置 | ❌ 需配置 | ❌ 手动 |
| 社区生态 | ✅ 丰富 | ⚠️ 衰退 | ❌ 无 |
| 学习曲线 | 低 | 中 | 最低 |
快速开始 #
bash
# 安装 Composer
curl -sS https://getcomposer.org/installer | php
# 创建新项目
composer create-project laravel/laravel my-app
# 安装依赖
composer install
# 添加依赖
composer require monolog/monolog
# 更新依赖
composer update
composer.json 示例 #
json
{
"name": "my/project",
"description": "My awesome PHP project",
"type": "project",
"require": {
"php": "^8.1",
"laravel/framework": "^10.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
资源推荐 #
- Composer 官方文档:最权威的 Composer 文档
- Packagist:PHP 包仓库
- Composer 中文镜像:国内加速镜像
- PHP The Right Way:PHP 最佳实践
贡献指南 #
欢迎对本指南进行贡献!如果你发现错误或有改进建议,请联系我们。
更新日志 #
- 2026-03-28:创建初始版本,包含完整的 Composer 学习大纲
继续探索本指南,逐步掌握 Composer 技术,从新手成长为 Composer 专家!
最后更新:2026-03-28