Composer 是 PHP 的一個(gè)依賴管理工具。它允許你申明項(xiàng)目所依賴的代碼庫(kù),它會(huì)在你的項(xiàng)目中為你安裝他們。Composer 不是一個(gè)包管理器。是的,它涉及 "packages" 和 "libraries",但它在每個(gè)項(xiàng)目的基礎(chǔ)上進(jìn)行管理,在你項(xiàng)目的某個(gè)目錄中(例如 vendor
)進(jìn)行安裝。默認(rèn)情況下它不會(huì)在全局安裝任何東西。因此,這僅僅是一個(gè)依賴管理。
對(duì)于使用者來(lái)說(shuō)Composer非常的簡(jiǎn)單,通過(guò)簡(jiǎn)單的一條命令將需要的代碼包下載到vendor
目錄下,然后開(kāi)發(fā)者就可以引入包并使用了.
其中的關(guān)鍵在于你項(xiàng)目定義的composer.json
,可以定義項(xiàng)目需要依賴的包(可能有多個(gè)),而依賴的包可能又依賴其他的包(這就是組件的好處),這些都不用你煩心,Composer會(huì)自動(dòng)下載你需要的一切,一切在于composer.json
的定義.
1、Composer的安裝
方法一:下載并且運(yùn)行 Composer-Setup.exe,它將安裝最新版本的 Composer ,并設(shè)置好系統(tǒng)的環(huán)境變量,因此你可以在任何目錄下直接使用 composer
命令(這是將 Composer 安裝在你機(jī)器上的最簡(jiǎn)單的方法,推薦使用。)
一直點(diǎn)下一步就安裝成功了,這里的路徑是自動(dòng)加上的,如果沒(méi)有就手動(dòng)加上(注:運(yùn)行 Composer 需要 PHP 5.3.2 以上版本)
完成以后,輸入"composer -V",顯示以下畫(huà)面說(shuō)明安裝成功
方法二:下載composer.phar放在php目錄中直接使用(優(yōu)點(diǎn):?jiǎn)我豢旖菔褂胏omposer)
如果您希望手動(dòng)下載phar,則可以使用以下版本:
我下載的是1.8.0版,在它所在目錄直接運(yùn)行就可以
2、使用Composer下載thinkphp
第一步:首先要把倉(cāng)庫(kù)鏡像修改成國(guó)內(nèi)的,不然下載很慢
全局配置(推薦)
所有項(xiàng)目都會(huì)使用該鏡像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist
項(xiàng)目配置
僅修改當(dāng)前工程配置,僅當(dāng)前工程可使用該鏡像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config --unset repos.packagist
使用composer config -g -l查看配置,結(jié)果如下,它已經(jīng)改了鏡像地址
第二步:下載think
打開(kāi)Packagist搜索think
運(yùn)行這行代碼,它就會(huì)自動(dòng)下載think
運(yùn)行結(jié)果
3、安裝依賴包
方法一:使用composer.phar安裝
要開(kāi)始在你的項(xiàng)目中使用 Composer,你只需要一個(gè) composer.json
文件。該文件包含了項(xiàng)目的依賴和其它的一些元數(shù)據(jù)。
第一件事情(并且往往只需要做這一件事),你需要在 composer.json
文件中指定 require
key 的值。你只需要簡(jiǎn)單的告訴 Composer 你的項(xiàng)目需要依賴哪些包。
{ "require": { "monolog/monolog": "^2.0" }}
你可以看到, require
需要一個(gè) 包名稱 (例如 monolog/monolog
) 映射到 包版本 (例如 ^.2.0
) 的對(duì)象。
編寫(xiě)完composer.json(必須),加上composer.phar
獲取定義的依賴到你的本地項(xiàng)目,只需要調(diào)用 composer.phar
運(yùn)行 install
命令。
php composer.phar install
接著前面的例子,這將會(huì)找到 monolog/monolog
的最新版本,并將它下載到 vendor
目錄。 這是一個(gè)慣例把第三方的代碼到一個(gè)指定的目錄 vendor
。如果是 monolog 將會(huì)創(chuàng)建 vendor/monolog/monolog
目錄。
如果你不想使用composer.phar,在項(xiàng)目加上composer.json(必須),在所在項(xiàng)目運(yùn)行以下代碼:
composer install
方法二:Packagist搜索monolog,直接在網(wǎng)站根目錄運(yùn)行composer require monolog/monolog(無(wú)需composer.json和composer.phar,會(huì)自動(dòng)創(chuàng)建json文件)
包版本
在前面的例子中,我們引入的 monolog 版本指定為 ^2.0。這表示任何從 2.0
開(kāi)始的開(kāi)發(fā)分支,它將會(huì)匹配2.0.0或者
2.0.1
版本約束可以用幾個(gè)不同的方法來(lái)指定。
1、composer.json
composer.json文件中保存的是我們安裝的組件及組件的版本要求。
2、comopser.lock
composer.lock文件中保存的是組件及其依賴的具體版本,在多人協(xié)同開(kāi)發(fā)的情況下,這個(gè)文件能很好的解決組件不同而產(chǎn)生的問(wèn)題。在使用composer install
的時(shí)候是不會(huì)修改composer.lock
這個(gè)文件,所以會(huì)把這個(gè)文件也放入版本管理中,其它人在使用時(shí)只需要composer install
就可以了。而使用composer update
后修改這個(gè)文件。
綜上所述:composer.lock
這個(gè)文件主要是解決在協(xié)同開(kāi)發(fā)中組件及其依賴的版本記錄,防止不同人使用的組件及依賴版本不同。
聯(lián)系客服