写在前面
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
Composer 不是一个包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。
运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。
我们将从包的来源直接安装,而不是简单的下载 zip 文件,你需要 git 、 svn 或者 hg ,这取决于你载入的包所使用的版本管理系统
安装Composer
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
#archlinux
#sudo pacman -S composer
修改Composer镜像源
#中国全量镜像
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com
#阿里云全量镜像
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
#解除镜象
$ composer config -g --unset repos.packagist
Composer使用
包的安装、更新下载和依赖
#如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
$ composer install
#从 composer.json 安装最新扩展包和依赖;
$ composer update
#从 composer.json 或者对应包的配置,并更新到最新;
$ composer update vendor/package
#添加安装 new/package, 可以指定版本,如: composer require new/package ~2.5.
$ composer require new/package
扩展包查找和查看
当我们需要找一个扩展包,可以去packagist
官网查找
或者使用命令
#查找扩展包 monolog
$ composer search monolog
#显示本地安装的扩展包
$ composer show -i
其他常用命令
# 查看show命令的帮助文档
$ composer show -h
#创建项目
#如果该目录目前不存在,则会在安装过程中自动创建。也可以指定文件项目目录
$ composer create-project doctrine/orm path 2.2.*
#优化自动加载,安装包的时候可以同样使用--optimize-autoloader。
#不加这一选项,你可能会发现20%到25%的性能损失。
$ composer dump-autoload --optimize
#全局安装
$ composer global require fabpot/php-cs-fixer:dev-master
#全局更新
$ composer global update
#依赖检测
$ composer depends --link-type=require monolog/monolog
使用扩展包
对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php
文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。
require __DIR__ . '/vendor/autoload.php';
use Curl\Curl;
$curl = new Curl();
$curl->get();
//...
这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 Curl,你就可以像这样开始使用这个类库,并且他们将被自动加载。
注意: Composer 提供了自己的 autoloader。如果你不想使用它,你可以仅仅引入 vendor/composer/autoload_*.php 文件,它返回一个关联数组,你可以通过这个关联数组配置自己的 autoloader。