Composer 基本使用

写在前面

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官网查找

官网:https://packagist.org/

或者使用命令

#查找扩展包 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。