composer:php的依赖管理工具

phpcomposer
PHP 5.3.2+
Composer 不是一个包管理器,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

overview

curl -sS https://getcomposer.org/installer | php

解决和下载依赖,请执行 install 命令:

php composer.phar install

自动加载:Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中。

require 'vendor/autoload.php';

使用

项目安装

在你的项目中使用 Composer,你只需要一个 composer.json文件。该文件包含了项目的依赖和其它的一些元数据。

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

包名称

由供应商名称和其项目名称构成。

包版本

约束方法:

  • 确切的版本号 1.0.2
  • 范围
    通过使用比较操作符可以指定有效的版本范围。
    有效的运算符:>、>=、<、<=、!=。
    你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。
    AND 的优先级高于 OR。
>=1.0
>=1.0,<2.0
>=1.0,<1.1|>=1.2
  • 通配符 1.0.*
  • 赋值运算符 ~1.2
    ~1.2相当于>=1.2,<2.0
    ~1.2.3 相当于 >=1.2.3,<1.3

默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。

安装依赖包

php composer.phar install

这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。如果是 monolog 将会创建 vendor/monolog/monolog 目录。
install 命令将创建一个 composer.lock 文件到你项目的根目录中。
tips:如果你正在使用Git来管理你的项目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不会希望将所有的代码都添加到你的版本库中。

composer.lock - 锁文件

在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。
请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中。
install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
lock后要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。

php composer.phar update

选择更新:

php composer.phar update monolog/monolog [...]

更新自己:

composer selfupdate 

Packagist

packagist 是 Composer 的主要资源库。
访问 packagist website (packagist.org),你可以浏览和搜索资源包。

自动加载

库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。

require 'vendor/autoload.php';

这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));

$log->addWarning('Foo');

使用国内的镜像

系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”
单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见“方法二”

方法一: 修改 composer 的全局配置文件

composer config -g repo.packagist composer https://packagist.phpcomposer.com

方法二: 修改当前项目的 composer.json 配置文件:

进入项目根目录(也就是 composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也可以自己手工添加):

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}
posted @ 2016-10-30 17:41  jcuan  阅读(320)  评论(0编辑  收藏  举报