Composer快速入门
什么是Composer
Composer?是PHP的一個依賴管理工具。你可以在你的項目里聲明你依賴的庫,然后Composer會幫你解決以下問題:找到這些庫以及這些庫所依賴的庫可以安裝的版本,然后進行安裝。所以Composer是一個依賴管理工具,而不是一個包管理工具(類似Yum或者Apt),因為它是基于每個項目去管理這些包,把這些包安裝到項目里的某個目錄。
Composer的安裝
Composer要求?PHP 5.3.2+?版本以及一些PHP的配置,如果有不兼容的情況發生,在安裝過程中會有提示。有兩種方式安裝Composer,一是本地安裝,而是全局安裝。
本地安裝
本地安裝會把Composer安裝到當前的目錄下。運行以下命令進行安裝:
$ 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條命令,它們分別執行以下的操作:
下載安裝文件到當前目錄。
檢驗安裝文件的SHA-384散列。
運行安裝文件。
刪除安裝文件。
然后我們就可以運行執行以下命令來運行Compoer了:
$ php composer.phar?
需要注意的是,第二步檢查文件的散列,每一個版本安裝文件的散列值都會不同的,所以每次安裝最好都到?下載頁面?去獲取安裝代碼。或者如果你覺得沒有檢查安裝文件的必要的話,也可以跳過這條命令去執行下面的命令。當然從安全角度考慮,不建議這么做。
全局安裝
所謂全局安裝,其實就是把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/?。
參考
-
https://getcomposer.org/
-
http://pkg.phpcomposer.com/
總結
以上是生活随笔為你收集整理的Composer快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL案例分析--QueryCach
- 下一篇: DCOS实践分享(6):基于DCOS的大