下面由composer教程欄目帶大家介紹php-composer的安裝與使用方法(簡(jiǎn)化版),希望對(duì)需要的朋友有所幫助!
1.簡(jiǎn)介
Composer 是 PHP 的一個(gè)依賴管理工具。它允許你申明項(xiàng)目所依賴的代碼庫(kù),它會(huì)在你的項(xiàng)目中為你安裝他們。
《Composer 中文網(wǎng)》
2.系統(tǒng)要求
運(yùn)行 Composer 需要 PHP 5.3.2+ 以上版本。
Composer 是多平臺(tái)的,它可以同時(shí)在 Windows 、 Linux 以及 OSX 平臺(tái)上運(yùn)行。
3.安裝(ubuntu)
curl -sS https://getcomposer.org/installer | php mv composer.phar mv composer.phar /usr/local/bin/composer
注:如果沒有安裝curl,可以通過以下命令安裝
apt-get update apt-get install curl
當(dāng)你的 Composer 安裝完畢之后,你可以實(shí)用下列命令查看是否安裝成功
composer -v
注 如果上述方法由于某些原因失敗了,你還可以通過 php 下載安裝器:
php -r "readfile('https://getcomposer.org/installer');" | php
這將檢查一些 PHP 的設(shè)置,然后下載 composer.phar
到你的工作目錄中。這是 Composer 的二進(jìn)制文件。這是一個(gè) PHAR 包(PHP 的歸檔),這是 PHP 的歸檔格式可以幫助用戶在命令行中執(zhí)行一些操作。
你可以通過 --install-dir
選項(xiàng)指定 Composer 的安裝目錄(它可以是一個(gè)絕對(duì)或相對(duì)路徑)
4.使用
要開始在你的項(xiàng)目中使用 Composer,你只需要一個(gè) composer.json
文件。該文件包含了項(xiàng)目的依賴和其它的一些元數(shù)據(jù)。
首先創(chuàng)建一個(gè) composer.json
文件,寫入相應(yīng)的包名和版本號(hào),如
{ "require": { "monolog/monolog": "1.13.*" } }
這是后就寫入了一個(gè)依賴包,之后安裝依賴包。獲取定義的依賴到你的本地項(xiàng)目,之后在你的項(xiàng)目目錄中(即 composer.json
所在目錄)使用 Composer 運(yùn)行 install
命令。
composer install
當(dāng)然,如果是在 Windows
系統(tǒng)中,也可以通過調(diào)用 composer.phar
包來(lái)進(jìn)行依賴包的安裝。
php composer.phar install
執(zhí)行 composer install
,就進(jìn)入自動(dòng)安裝,安裝完成后會(huì)生成一個(gè) composer.lock
文件,里面是特定的版本號(hào)名,需要這個(gè)文件和 composer.json
一起提交到版本管理里去。
最后,在需要更新依賴包的時(shí)候,可以使用以下命令
composer update
如果只想更新部分依賴
composer update monolog/monolog
5.自動(dòng)加載
對(duì)于庫(kù)的自動(dòng)加載信息,Composer 生成了一個(gè) vendor/autoload.php
文件。你可以在你項(xiàng)目的入口文件中引入它
<?php require __DIR__ . '/vendor/autoload.php'; ?>
這使得你可以很容易的使用第三方代碼。例如:如果你的項(xiàng)目依賴 monolog,你就可以像這樣開始使用這個(gè)類庫(kù),并且他們將被自動(dòng)加載。
<?php require __DIR__ . '/vendor/autoload.php'; $log = new MonologLogger('name'); $log->pushHandler(new MonologHandlerStreamHandler('app.log', MonologLogger::WARNING)); $log->addWarning('Foo'); ?>
6.Packagist / Composer 中國(guó)全量鏡像
由于墻的問題,所以會(huì)導(dǎo)致 Composer 的國(guó)外鏡像經(jīng)常無(wú)法正常的 install
,所以推薦使用國(guó)內(nèi)的鏡像,使用方式如下
有兩種方式啟用本鏡像服務(wù):
- 系統(tǒng)全局配置: 即將配置信息添加到 Composer 的全局配置文件 config.json 中。詳見”方法一“
- 將配置信息添加到某個(gè)項(xiàng)目的 composer.json 文件中。詳見”方法二“
方法一: 修改 composer 的全局配置文件
打開命令行窗口(windows用戶)或控制臺(tái)(Linux、Mac 用戶)并執(zhí)行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
方法二: 修改當(dāng)前項(xiàng)目的 composer.json
配置文件:
打開命令行窗口(windows用戶)或控制臺(tái)(Linux、Mac 用戶),進(jìn)入你的項(xiàng)目的根目錄(也就是 composer.json
文件所在目錄),執(zhí)行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令將會(huì)在當(dāng)前項(xiàng)目中的 composer.json
文件的末尾自動(dòng)添加鏡像的配置信息(你也可以自己手工添加):
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }
7.使用 Composer 中的 autoload 實(shí)現(xiàn)自動(dòng)加載命名空間
Composer 除了可以幫你安裝所需要的依賴包以外,還可以實(shí)現(xiàn)自動(dòng)加載命名空間的功能,當(dāng)我們自己編寫的函數(shù)庫(kù)與類庫(kù)需要自動(dòng)加載時(shí),我們就可以通過 composer.json
來(lái)實(shí)現(xiàn)。它類似于 php 中的 spl_autoload_register()
, 其實(shí)如果你去查看 Composer 中的源代碼,你會(huì)看到它的自動(dòng)加載功能也是用了 spl_autoload_register()
這個(gè)函數(shù)?!毒唧w可看此文章詳細(xì)介紹》
我們?cè)?composer.json
里添加如下代碼:
{ "autoload": { "psr-4": { "Test\": "test/", "Testtwo\": "testtwo/" } } }
這個(gè)配置文件中有一個(gè) autoload 段,其中有個(gè) 《PSR-4》,psr-4 是一個(gè)基于 psr-4 規(guī)則的類庫(kù)自動(dòng)加載對(duì)應(yīng)關(guān)系,只要在其后的對(duì)象中,以 ”命名空間“: “路徑” 的方式寫入自己的類庫(kù)信息修改完成后,之后,在執(zhí)行下列命令,即可完成自動(dòng)加載。
composer dumpautoload
注:
"psr-4": {"Test\": "test/"}
中的 "test/" 路徑為相對(duì)于composer.json
的路徑
這個(gè)時(shí)候,你就可以調(diào)用你自己編寫的函數(shù)庫(kù)或者類庫(kù)了
<?php require __DIR__ . '/vendor/autoload.php'; $testClass = new TestTestclass(); ?>
注:本文內(nèi)容參考了《Composer 中文網(wǎng)》,后續(xù)還會(huì)更新 Composer 其它的實(shí)用功能