1. 程式人生 > >有用PHP依賴管理工具Composer新手教程

有用PHP依賴管理工具Composer新手教程

pro 介紹 簡單 優先 .com auto aries via 日誌記錄

PHP依賴管理工具Composer新手教程

Composer 是 PHP 的一個依賴管理工具。它同意你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。

依賴管理

Composer 不是一個包管理器。

是的,它涉及 "packages" 和 "libraries",但它在每一個項目的基礎上進行管理,在你項目的某個文件夾中(比如 vendor)進行安裝。

默認情況下它不會在全局安裝不論什麽東西。因此,這不過一個依賴管理。

這樣的想法並不新奇,Composer 受到了 node‘s npm 和 ruby‘s bundler 的強烈啟示。而當時 PHP 下並沒有類似的工具。

Composer 將這樣為你解決這個問題:
你有一個項目依賴於若幹個庫。
當中一些庫依賴於其它庫。
你聲明你所依賴的東西。
Composer 會找出哪個版本號的包須要安裝。並安裝它們(將它們下載到你的項目中)。



參考:http://www.lai18.com/content/319715.html
http://docs.phpcomposer.com/00-intro.md
聲明依賴關系

例如說,你正在創建一個項目,你須要一個庫來做日誌記錄。你決定使用 monolog。為了將它加入到你的項目中,你所須要做的就是創建一個 composer.json 文件。當中描寫敘述了項目的依賴關系。

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

我們僅僅要指出我們的項目須要一些 monolog/monolog 的包,從 1.2 開始的不論什麽版本號。

系統要求


執行 Composer 須要 PHP 5.3.2+ 以上版本號。一些敏感的 PHP 設置和編譯標誌也是必須的,但對於不論什麽不兼容項安裝程序都會拋出警告。

我們將從包的來源直接安裝,而不是簡單的下載 zip 文件,你須要 git 、 svn 或者 hg ,這取決於你加載的包所使用的版本號管理系統。

Composer 是多平臺的,我們努力使它在 Windows 、 Linux 以及 OSX 平臺上執行的相同出色。

Linux/Unix下安裝

局部安裝


要真正獲取 Composer。我們須要做兩件事。

首先安裝 Composer (相同的,這意味著它將下載到你的項目中):

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

註意: 假設上述方法因為某些原因失敗了,你還能夠通過 php >下載安裝器:

php -r "readfile(‘https://getcomposer.org/installer‘);" | php

這將檢查一些 PHP 的設置。然後下載 composer.phar 到你的工作文件夾中。

這是 Composer 的二進制文件。

這是一個 PHAR 包(PHP 的歸檔),這是 PHP 的歸檔格式能夠幫助用戶在命令行中運行一些操作。

你能夠通過 --install-dir 選項指定 Composer 的安裝文件夾(它能夠是一個絕對或相對路徑):

curl -sS https://getcomposer.org/installer | php -- --install-dir=bin

全局安裝

你能夠將此文件放在不論什麽地方。假設你把它放在系統的 PATH 文件夾中。你就能在全局訪問它。

在類Unix系統中,你甚至能夠在使用時不加 php 前綴。



你能夠運行這些命令讓 composer 在你的系統中進行全局調用:

curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer

註意: 假設上訴命令由於權限執行失敗。 請使用 sudo 再次嘗試執行 mv 那行命令。

如今僅僅須要執行 composer 命令就能夠使用 Composer 而不須要輸入 php composer.phar。



全局安裝 (on OSX via homebrew)

Composer 是 homebrew-php 項目的一部分。



brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer

Windows下安裝

使用安裝程序


這是將 Composer 安裝在你機器上的最簡單的方法。

下載而且執行 Composer-Setup.exe。它將安裝最新版本號的 Composer 。並設置好系統的環境變量,因此你能夠在不論什麽文件夾下直接使用 composer 命令。



手動安裝

設置系統的環境變量 PATH 並執行安裝命令下載 composer.phar 文件:

C:\Users\username>cd C:\bin
C:\bin>php -r "readfile(‘https://getcomposer.org/installer‘);" | php

註意: 假設收到 readfile 錯誤提示。請使用 http 鏈接或者在 php.ini 中開啟 php_openssl.dll 。 在 composer.phar 同級文件夾下新建文件 composer.bat :

C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat

關閉當前的命令行窗體。打開新的命令行窗體進行測試:

C:\Users\username>composer -V
Composer version 27d8904

使用 Composer

如今我們將使用 Composer 來安裝項目的依賴。

要解決和下載依賴。請運行 install 命令:

php composer.phar install

假設你進行了全局安裝。而且沒有 phar 文件在當前文件夾。請使用以下的命令取代:

composer install

繼續 上面的樣例。這裏將下載 monolog 到 vendor/monolog/monolog 文件夾。

自己主動載入

除了庫的下載。Composer 還準備了一個自己主動載入文件。它能夠載入 Composer 下載的庫中全部的類文件。

使用它。你僅僅須要將以下這行代碼加入到你項目的引導文件裏:

require ‘vendor/autoload.php‘;

如今我們就能夠使用 monolog 了!



延伸閱讀

《PHP高級知識進階》系列技術文章整理收藏

1session機制具體解釋以及session的相關應用

2php採集自中央氣象臺範圍覆蓋全國的天氣預報代碼實例

3smarty自己定義函數htmlcheckboxes使用方法實例

4PHP Session可能會引起並發問題

5PHP callback函數用法和註意事項

6朋友網關於QQ相關的PHP代碼(研究QQ的絕佳資料)

7PHP中使用imagick生成PSD文件縮略圖教程

8PHP實現將瀏覽歷史頁面網址保存到cookie的方法

9php中使用session防止用戶非法登錄後臺的方法

10利用XDebug分析PHP程序,找出性能瓶頸

11PHP依賴管理工具Composer新手教程

12PHP 開發人員該知道的5個 Composer 小技巧

13PHP實現的帶超時功能get_headers函數

14PHP中實現獲取IP和地理位置類分享

15php使用iconv中文截斷問題的解決方法

16nginx下支持PATH_INFO具體解釋

17PHP開發人員應了解的24個超酷的PHP庫(微框架)

18HHVM 是怎樣提升 PHP 性能的?

19php開啟多進程的方法

20PHP異常處理

21PHP守護進程實例

22PHP多線程編程之管道通信實例分析

23PHP多進程處理並行處理任務實例

24PHP使用QPM實現多進程並行任務處理程序

25PHP多線程之內部多線程實例分析

26xhprof安裝&&使用

27推薦給開發人員的11個PHP框架

28Cookie與Session的差別-總結非常好的文章

29PHP自帶Session隱患(session文件獨占鎖引起堵塞)

30php壓縮和解壓縮字符串的方法

31php利用反射實現插件機制的方法

32PHP SPL標準庫之數據結構雙鏈表(SplDoublyLinkedList)

33PHP SPL標準庫之數據結構固定長度數組(SplFixedArray)

34xss攻擊知識入門整理

35PHP SPL標準庫之數據結構隊列(SplQueue)和優先隊列(SplPriorityQueue)

36PHP中的Streams具體介紹

37php以fastCGI的方式執行時文件系統權限問題及解決方法

38PHP性能分析工具XHProf安裝使用教程

39百度project師講PHP函數的實現原理及性能分析(二)

40百度project師講PHP函數的實現原理及性能分析(三)

41百度project師講PHP函數的實現原理及性能分析(一)

42正確的PHP匹配UTF-8中文的正則表達式

43php中關於socket的系列函數總結

44PHP SOCKET編程具體解釋

45在Linux系統的server上隱藏PHP版本的方法

有用PHP依賴管理工具Composer新手教程