composer:php的依賴管理工具

phpcomposer
PHP 5.3.2+
Composer 不是一個包管理器,但它在每一個項目的基礎上進行管理,在你項目的某個目錄中(例如 vendor)進行安裝。默認狀況下它不會在全局安裝任何東西。所以,這僅僅是一個依賴管理。php

overview

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

解決和下載依賴,請執行 install 命令:html

php composer.phar install

自動加載:Composer 還準備了一個自動加載文件,它能夠加載 Composer 下載的庫中全部的類文件。使用它,你只須要將下面這行代碼添加到你項目的引導文件中。git

require 'vendor/autoload.php';

使用

項目安裝

在你的項目中使用 Composer,你只須要一個composer.json文件。該文件包含了項目的依賴和其它的一些元數據。web

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

包名稱

由供應商名稱和其項目名稱構成。json

包版本

約束方法:app

  • 確切的版本號 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 版本,你可使用 穩定標誌。你能夠對全部的包作 最小穩定性 設置,而不是每一個依賴逐一設置。composer

安裝依賴包

php composer.phar install

這將會找到 monolog/monolog 的最新版本,並將它下載到 vendor 目錄。 這是一個慣例把第三方的代碼到一個指定的目錄 vendor。若是是 monolog 將會建立 vendor/monolog/monolog 目錄。
install 命令將建立一個 composer.lock 文件到你項目的根目錄中。
tips:若是你正在使用Git來管理你的項目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不會但願將全部的代碼都添加到你的版本庫中。curl

composer.lock - 鎖文件

在安裝依賴後,Composer 將把安裝時確切的版本號列表寫入 composer.lock 文件。這將鎖定該項目的特定版本。
請提交你應用程序的 composer.lock (包括 composer.json)到你的版本庫中。
install 命令將會檢查鎖文件是否存在,若是存在,它將下載指定的版本(忽略 composer.json 文件中的定義)。
lock後要更新你的依賴版本請使用 update 命令。這將獲取最新匹配的版本(根據你的 composer.json 文件)並將新版本更新進鎖文件。ui

php composer.phar update

選擇更新:url

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"
    }
}
相關文章
相關標籤/搜索