Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库(各种 PHP 的第三方依赖包,甚至是 PHP 框架),它可以为你轻松快捷地安装它们。
此外,Composer 会为项目中的所有 PHP 组件自动生成符合 PSR 标准的自动加载器,抽象了依赖管理和自动加载。
准备工作: 安装 Composer 前,请确保已经正确安装了 PHP(需要 PHP 相关模块扩展的支持)。打开命令行窗口,执行 php -v
查看是否可以正确输出 PHP 的版本号。
点击 Composer-Setup.exe 下载安装包,双击安装最新版本的 Composer。(推荐全局安装)
也可自行到官网 https://getcomposer.org/ 下载自己喜欢的 composer 版本。
打开 Windows 系统的命令行,输入 composer 命令,如果看到关于 Composer 的一些介绍和命令,则说明 Composer 安装成功。
或者,输入以下命令:
# 查看 composer 的版本
composer -V
例如:你创建了一个项目,项目根目录为 E:\xampp\htdocs\demo,你需要一个库来做日志记录。 假如你比较了解 monolog,决定使用 monolog。
首先,你需要在项目根目录中创建一个 composer.json 文件,其中描述了项目的依赖关系。内容如下:
{
"require": {
"monolog/monolog": "1.2.*"
}
}
其次,打开 cmd 命令行,切换到项目根目录,输入命令:composer install ,如果没有报错,等候 1 分钟左右,就会提示下载成功。
monolog 就会下载到项目根目录(E:\xampp\htdocs\demo )下的 vendor 目录中。
Composer 准备了一个自动加载文件(vendor 目录下的 autoload.php 文件),它可以加载 Composer 下载的库中所有的类文件。使用该自动加载器,就可在你的项目中轻松引入由 Composer 安装的 PHP 组件。
你只需要将下面这行代码添加到项目的引导文件中:
require_once __DIR__ . '/vendor/autoload.php';
之后,就可以在项目中直接使用 Composer 下载的库,如 monolog。
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
$log->addError('Bar');
默认情况下,依赖包的镜像仓库地址为 packagist 官方源 (https://packagist.org),一般会从 github.com 上下载源文件。
我们都知道,国外的网站连接下载速度可能会比较慢,并且随时可能被“墙”。故推荐采用国内的镜像仓库地址。
国内的 composer 镜像仓库地址,强烈推荐使用 阿里云 Composer 全量镜像 。
它提供的镜像仓库地址为 https://mirrors.aliyun.com/composer/
# -g 表示全局,它会修改 composer 的全局配置文件 config.json
# 强烈推荐使用全局配置
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如果需要取消自行配置的镜像仓库地址并恢复为默认的 packagist 官方源,可以执行下面的命令。
composer config -g --unset repos.packagist
composer config -g --list
此时,composer 会利用默认值(也就是官方源)重置源地址。
依据当前目录下的 composer.lock(锁文件) 或 composer.json 文件所定义的依赖关系,安装依赖包。install 命令会先检查锁文件是否存在,如果存在,它将下载 composer.lock 文件中指定的版本,而忽略 composer.json 文件中的定义。
如果你想更新你的依赖版本或者说你修改了 composer.json 中的依赖关系,想让 composer 按照 composer.json 文件中的定义执行更新操作,就用 composer update 命令。
require 命令一般用来安装新的依赖包,并将依赖写入当前目录的 composer.json 文件中。
如果 composer.json 文件中,添加或改变了依赖,修改后的依赖关系将被安装或者更新。
composer require
你也可以直接在命令中指明需要安装的依赖包。
composer require barryvdh/laravel-ide-helper
安装指定版本的依赖包。
composer require barryvdh/laravel-ide-helper:1.0
--dev 选项和 require-dev 相对应。如果你的依赖包仅仅用于开发环境,建议加上 --dev 选项。
composer require --dev barryvdh/laravel-ide-helper
更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。