PHP Composer 简介与使用指南

Composer是PHP的依赖管理工具,它允许你声明项目所依赖的库,并为你安装和管理它们

如果你用过 Node.js,它类似于 npm;如果是 Python,它类似于 pip。在 Composer 出现之前,PHP 开发者需要手动下载源代码、处理类库之间的嵌套依赖,过程极其痛苦。


php package regository

1. 核心概念

  • 依赖管理:你只需要在配置文件中写上“我需要这个包”,Composer 会自动下载该包及其所需的所有其他包。
  • Packagist:这是 Composer 的官方中央仓库(packagist.org),你可以在这里找到成千上万的开源 PHP 插件。
  • **自动加载 (Autoload)**:Composer 会生成一个安装脚本,让你通过一行代码就引入项目中所有的依赖库。

2. 安装 Composer

A Dependency Manager for PHP

1
2
3
4
composer --version

## 国内加速
composer config -g repo.packagist php https://mirrors.aliyun.com/composer/

如果未安装,可以前往 getcomposer.org 下载对应系统的安装包。

在中国大陆使用时,建议配置 阿里云华为云 的镜像源,否则下载速度可能会非常慢:
composer config -g repo.packagist php https://mirrors.aliyun.com/composer/


3. 基本使用流程

第一步:初始化项目

在你的项目根目录下运行:

1
composer init

这会引导你创建一个 composer.json 文件,它是项目的“购物清单”。

第二步:添加依赖

假设你需要安装一个处理时间的库 carbon

1
composer require nesbot/carbon

执行后,你会发现多了两个东西:

  1. vendor/ 目录:所有的源代码都在这里。
  2. composer.lock锁定当前安装的具体版本,确保团队其他人的环境和你完全一致。

第三步:在代码中使用

这是最爽的一步。你不需要写几十个 require,只需要在入口文件引入:

1
2
3
4
5
<?php
require 'vendor/autoload.php';

use Carbon\Carbon;
echo Carbon::now()->addDays(7); // 显示一周后的时间

4. 常用命令速查表

命令 用途
composer install 根据 composer.lock 安装依赖(部署项目时用)
composer update 检查并升级所有依赖包到最新版本
composer require <package> 添加并安装一个新的库
composer remove <package> 卸载一个库
composer dump-autoload 强制更新自动加载文件(当你新增了类文件时)

5. 进阶提示:composer.json vs composer.lock

  • composer.json:描述了项目能够兼容的版本范围(例如 ^2.0 表示 2.x 系列)。你应该将它提交到 Git。
  • composer.lock:记录了当前确切安装的版本号(例如 2.4.1)。务必将其提交到 Git,这样能保证生产环境和开发环境的代码完全一致

在生产环境部署代码时,永远运行 composer install 而不是 composer update,以防止意外升级导致系统崩溃。