PHP Composer 入门:依赖管理完全指南
时间:2026-10-4 10:20 作者:emer 分类: 无
前言
Composer 是 PHP 的依赖管理工具,就像 Node 的 npm、Python 的 pip。现在写 PHP 项目,不会 Composer 根本没法干活。本文讲清楚 Composer 的核心用法。
一、安装 Composer
Linux / Mac
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Windows
去官网下载安装包,一路下一步就行。
验证安装
composer -V
二、初始化项目
# 在项目目录下
composer init
会问你几个问题,一路回车就行,然后会生成 composer.json 文件。
composer.json 长什么样
{
"name": "yourname/project",
"description": "项目描述",
"require": {
"monolog/monolog": "^2.0"
}
}
三、安装依赖
1. 安装所有依赖
composer install
会根据 composer.lock 文件安装指定版本的依赖。
2. 添加新依赖
composer require monolog/monolog
会自动加到 composer.json 里,然后安装。
3. 安装指定版本
composer require monolog/monolog:^2.0
版本号说明
^2.0:2.0 到 3.0 之前(不包括 3.0)~2.0:2.0 到 2.1 之前(不包括 2.1)*:任意版本2.0.*:2.0 开头的版本
四、自动加载
Composer 最爽的就是自动加载,不用自己写 require。
引入自动加载
<?php
require 'vendor/autoload.php';
// 直接用类,不用 require
$log = new Monolog\Logger('name');
PSR-4 自动加载
在 composer.json 里配置:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
然后执行:
composer dump-autoload
这样 App\User 类就会从 src/User.php 加载。
五、常用命令
| 命令 | 作用 |
|---|---|
composer install |
安装所有依赖 |
composer update |
更新所有依赖 |
composer require 包名 |
添加依赖 |
composer remove 包名 |
删除依赖 |
composer dump-autoload |
重新生成自动加载 |
composer show |
查看已安装的包 |
composer self-update |
更新 Composer 本身 |
六、开发环境依赖
有些包只在开发时用,比如测试工具:
composer require --dev phpunit/phpunit
线上部署的时候,不安装开发依赖:
composer install --no-dev
七、中国镜像
国外源太慢,换中国镜像:
# 阿里云镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 腾讯云镜像
composer config -g repo.packagist composer https://mirrors.tencent.com/composer/
换完之后速度飞起来。
八、composer.lock 的作用
- 记录当前安装的依赖版本
- 团队成员 install 的时候,装的版本一模一样
- 一定要提交到 Git
git add composer.json composer.lock
git commit -m "update composer"
九、常见坑
- 没装 composer.lock:团队成员装的版本不一样,出 bug
- 自动加载不生效:改了 autoload 配置,忘了 dump-autoload
- 版本冲突:两个包依赖同一个库的不同版本
- 国内太慢:不换镜像,下载半天
十、最佳实践
- composer.json 和 composer.lock 都提交 Git
- 线上用 install --no-dev,不要用 update
- 用中文镜像,加速下载
- 改了自动加载配置,记得 dump-autoload
总结
Composer 的核心要点:
- require 添加依赖,install 安装依赖
- vendor/autoload.php 是自动加载入口
- composer.lock 要提交 Git,保证版本一致
- 换国内镜像,速度快很多
- 开发依赖用 --dev,线上不装
学会 Composer,PHP 开发效率提升一倍。