Composer快速入門

什麼是Composer

Composer是PHP的一個依賴管理工具。你能夠在你的項目裏聲明你依賴的庫,而後Composer會幫你解決如下問題:找到這些庫以及這些庫所依賴的庫能夠安裝的版本,而後進行安裝。因此Composer是一個依賴管理工具,而不是一個包管理工具(相似Yum或者Apt),由於它是基於每一個項目去管理這些包,把這些包安裝到項目裏的某個目錄。php

Composer的安裝

Composer要求PHP 5.3.2+版本以及一些PHP的配置,若是有不兼容的狀況發生,在安裝過程當中會有提示。有兩種方式安裝Composer,一是本地安裝,而是全局安裝。git

本地安裝

本地安裝會把Composer安裝到當前的目錄下。運行如下命令進行安裝:github

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"

一共4條命令,它們分別執行如下的操做:json

  1. 下載安裝文件到當前目錄。安全

  2. 檢驗安裝文件的SHA-384散列。bash

  3. 運行安裝文件。app

  4. 刪除安裝文件。composer

而後咱們就能夠運行執行如下命令來運行Compoer了:工具

$ php composer.phar

須要注意的是,第二步檢查文件的散列,每個版本安裝文件的散列值都會不一樣的,因此每次安裝最好都到下載頁面去獲取安裝代碼。或者若是你以爲沒有檢查安裝文件的必要的話,也能夠跳過這條命令去執行下面的命令。固然從安全角度考慮,不建議這麼作。ui

全局安裝

所謂全局安裝,其實就是把Composer安裝到PATH變量裏的某個目錄中,這樣你就能夠從任何地方去訪問Composer了。我的也建議這麼作。咱們只須要把本地安裝的composer執行文件移動到全局目錄下便可:

$ mv composer.phar /usr/local/bin/composer

這樣你就能夠在任何地方直接運行composer命令了。後續如沒有特別說明,都是在全局安裝的狀況下執行命令。

安裝選項

Composer安裝時支持3個選項。

--install-dir

經過--install-dir選項能夠修改Composer的安裝路徑,例如若是咱們想把Composer安裝在bin目錄下:

$ php composer-setup.php --install-dir=bin

--filename

經過--filename選項,咱們能夠修改Composer執行文件的名稱(默認爲composer.phar)。例如:

$ php composer-setup.php --filename=composer

--version

若是想安裝指定版本的Composer,可使用--version選項:

$ php composer-setup.php --version=1.0.0-alpha8

手動下載

除了上面的安裝方式外,還能夠直接下載執行文件,請到下載頁面進行下載。

Composer的更新

更新Composer很簡單,只須要執行如下命令:

$ composer selfupdate
Updating to version 1.1.2 (stable channel).
    Downloading: 100%         
Use composer self-update --rollback to return to version 06c45623d76457562cecbcf2245f904aa0f63a87

# 或者(二者是等效的)
$ composer self-update

若是想進行版本的回滾,可使用如下命令:

$ composer selfupdate --rollback
Rolling back to version 2016-05-26_16-11-16-06c4562.

Composer的基本使用

composer.json文件

安裝完Composer後,想要在項目裏開始使用它,你惟一須要作的就是建立一個composer.json文件。這個文件描述了你這個項目所依賴的包以及一些其餘的元信息。

require鍵

經過require這個配置項,咱們能夠指定項目的依賴。假設咱們項目須要用到monolog/monolog這個日誌庫,那麼咱們能夠這樣配置composer.json文件:

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

require的值是一個對象,對象裏的每個鍵對應一個依賴,經過鍵名爲包的名稱,鍵值爲包的版本。

包的名稱

包名由vendor名和項目名組成,這樣能夠保證包名的惟一性。項目名能夠重複,可是vendor名每一個人都不同。以monolog/monolog爲例,vendor名和項目名都是monolog

包的版本

在上面的例子中,咱們要求monolog/monolog的版本爲1.0.*,表示任何的1.0的開發分支版本都知足要求。版本的指定方式有不少種,在後面的文章中會進行詳細的解說。

安裝依賴

建立完composer.json文件並配置好require後,咱們就能夠安裝依賴了,只須要運行如下的命令:

$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing monolog/monolog (1.0.2)
    Downloading: 100%         

Writing lock file
Generating autoload files

Composer會根據上面配置的版本約定下載最新版本的monolog/monolog到默認目錄vendor下。

composer.lock文件

運行完上面的install命令後,你會發現除了vendor目錄,還會多了一個composer.lock文件。這個文件保存了項目已經安裝的每一個包的具體版本。在運行install命令的時候,若是存在這個文件,則Composer會根據這個文件下載對應版本的包。這樣的好處是能夠保證各個環境的依賴的版本一致,不然若是沒有這個文件,每一個環境在運行install時可能下載到的版本就不一致了。因此建議把composer.lock文件也放到版本控制裏。

更新依賴

要更新依賴,只須要運行update命令:

# 更新全部的依賴
$ composer update

# 更新某個依賴
$ composer update monolog/monolog

自動加載

下載完依賴後,咱們能夠開始使用依賴所提供的庫了。Composer會爲下載的庫建立自動加載文件vendor/autoload.php,咱們只須要包含這個文件就能輕鬆的調用各個庫的功能。以monolog/monolog爲例:

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

咱們不用關心庫文件的加載問題,Composer的autoload.php文件已經幫咱們處理好了各個庫的自動加載。

Packagist 鏡像

至此,咱們安裝好了Composer,也知道了它的基本用法,基本能夠快樂的玩耍了。可是衆所周知,因爲某些緣由,github和packagist在國內有時會訪問不了,或者速度很慢,這就會致使使用Composer時的各類不爽。還好咱們國內有個鏡像能夠解決這個問題,只須要把倉庫的路徑修改成鏡像的路徑便可。

有兩種方式,一是修改Composer的全局配置(推薦的方式):

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

這個命令會修改Composer的全局配置文件config.json。二是修改單個項目的配置:

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

這個命令會修改項目下的composer.json文件,添加以下的配置信息:

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

固然你也能夠直接手動修改composer.json文件,添加上面那段配置信息。

詳情請訪問:http://pkg.phpcomposer.com/

參考

相關文章
相關標籤/搜索