Composer 是 PHP 的依赖管理工具,下面这个表格汇总了它的核心命令和常见用法,方便你快速查阅。
| 命令 | 核心功能与说明 | 常用示例 |
|---|---|---|
install | 安装依赖。优先根据 composer.lock文件安装锁定版本,确保环境一致。若无 lock文件,则根据 composer.json安装并生成它。 | composer install |
require | 添加依赖。安装新包并自动写入 composer.json。这是添加包的首选命令,能避免直接修改文件可能带来的错误。 | composer require monolog/monologcomposer require "monolog/monolog:^2.0"(指定版本) |
update | 更新依赖。根据 composer.json中的版本约束,将包更新至最新兼容版本,并更新 composer.lock文件。 | composer update(更新所有) composer update monolog/monolog(更新指定包) |
remove | 移除依赖。从项目中移除指定的包,并清理 composer.json和 composer.lock。 | composer remove monolog/monolog |
init | 项目初始化。交互式地创建基本的 composer.json文件。 | composer init |
create-project | 创建项目。基于现有包直接创建新项目目录结构,相当于 git clone+ composer install。常用于安装如 Laravel 等框架。 | composer create-project laravel/laravel my_project |
dump-autoload (dumpautoload) | 优化自动加载。当你手动添加或修改了类文件后,此命令会重新生成自动加载器配置,确保新类能被正确加载。使用 -o参数可为生产环境优化加载速度。 | composer dump-autoloadcomposer dump-autoload -o(优化) |
💡 核心概念与工作流
理解以下概念和流程,能帮助你更好地使用 Composer:
-
composer.json与composer.lock:composer.json是你声明的依赖列表(允许的版本范围),而composer.lock是确切的依赖版本快照。团队协作时,务必将composer.lock纳入版本控制系统,以确保所有成员和使用环境安装完全一致的依赖版本。 - 标准工作流:
- 使用
composer init或手动创建composer.json。 - 使用
composer require package_name安装新包。 - 提交
composer.json和composer.lock到代码仓库。 - 在其他环境或团队成员拉取代码后,运行
composer install来安装composer.lock中锁定的确切版本。 - 当需要升级依赖时,使用
composer update或composer update package_name。
- 使用
- 自动加载:Composer 会自动生成
vendor/autoload.php文件。在你的应用入口文件中引入此文件后,就可以直接使用所有已安装依赖库中的类,无需手动包含。你也可以在composer.json中配置自己的autoload字段。
⚙️ 其他实用命令
以下命令在特定场景下也非常有用:
-
search: 在 Packagist 上搜索包。例如composer search monolog。 -
show / info: 列出已安装的包。使用composer show package/name查看特定包的详细信息。 -
outdated: 列出所有可更新的已安装包。 -
self-update (selfupdate): 将 Composer 自身更新到最新版本。 -
clear-cache (clearcache / cc): 清理 Composer 的本地包缓存。 -
validate: 检查composer.json文件格式是否正确。 -
diagnose: 诊断系统以识别常见错误。
🌏 配置国内镜像
为大幅提升下载速度,建议配置国内镜像。以下以配置阿里云镜像为例:
# 全局配置(推荐)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如需恢复默认官方源,可执行:
composer config -g repo.packagist composer https://packagist.org