你已經學會了如何使用命令行界面做一些事情。本章將向你介紹所有可用的命令。
為了從命令行獲得幫助信息,請運行?composer
?或者?composer list
?命令,然后結合?--help
?命令來獲得更多的幫助信息。
下列參數可與每一個命令結合使用:
init
在?“庫”?那一章我們看到了如何手動創(chuàng)建?composer.json
?文件。實際上還有一個?init
?命令可以更容易的做到這一點。
當您運行該命令,它會以交互方式要求您填寫一些信息,同時聰明的使用一些默認值。
php composer.phar init
foo/bar:1.0.0
?這樣的格式。minimum-stability
?字段的值。install
install
?命令從當前目錄讀取?composer.json
?文件,處理了依賴關系,并把其安裝到?vendor
?目錄下。
php composer.phar install
如果當前目錄下存在?composer.lock
?文件,它會從此文件讀取依賴版本,而不是根據?composer.json
?文件去獲取依賴。這確保了該庫的每個使用者都能得到相同的依賴版本。
如果沒有?composer.lock
?文件,composer 將在處理完依賴關系后創(chuàng)建它。
source
?和?dist
。對于穩(wěn)定版本 composer 將默認使用?dist
?方式。而?source
?表示版本控制源 。如果?--prefer-source
?是被啟用的,composer 將從?source
?安裝(如果有的話)。如果想要使用一個 bugfix 到你的項目,這是非常有用的。并且可以直接從本地的版本庫直接獲取依賴關系。--prefer-source
?相反,composer 將盡可能的從?dist
?獲取,這將大幅度的加快在 build servers 上的安裝。這也是一個回避 git 問題的途徑,如果你不清楚如何正確的設置。--dry-run
?命令,它將模擬安裝并顯示將會發(fā)生什么。require-dev
?字段中列出的包(這是一個默認值)。require-dev
?字段中列出的包。composer.json
?文件中定義的腳本。update
為了獲取依賴的最新版本,并且升級?composer.lock
?文件,你應該使用?update
?命令。
php composer.phar update
這將解決項目的所有依賴,并將確切的版本號寫入?composer.lock
。
如果你只是想更新幾個包,你可以像這樣分別列出它們:
php composer.phar update vendor/package vendor/package2
你還可以使用通配符進行批量更新:
php composer.phar update vendor/*
source
?安裝。dist
?安裝。require-dev
?字段中列出的包(這是一個默認值)。require-dev
?字段中列出的包。composer.json
?文件中定義的腳本。require
require
?命令增加新的依賴包到當前目錄的?composer.json
?文件中。
php composer.phar require
在添加或改變依賴時, 修改后的依賴關系將被安裝或者更新。
如果你不希望通過交互來指定依賴包,你可以在這條令中直接指明依賴包。
php composer.phar require vendor/package:2.* vendor/package2:dev-master
source
?安裝。dist
?安裝。require-dev
?字段中列出的包。global
global
?命令允許你在?COMPOSER_HOME?目錄下執(zhí)行其它命令,像?install
、require
?或?update
。
并且如果你將?$COMPOSER_HOME/vendor/bin
?加入到了?$PATH
?環(huán)境變量中,你就可以用它在命令行中安裝全局應用,下面是一個例子:
php composer.phar global require fabpot/php-cs-fixer:dev-master
現在?php-cs-fixer
?就可以在全局范圍使用了(假設你已經設置了你的 PATH)。如果稍后你想更新它,你只需要運行?global update
:
php composer.phar global update
search
search
?命令允許你為當前項目搜索依賴包,通常它只搜索 packagist.org 上的包,你可以簡單的輸入你的搜索條件。
php composer.phar search monolog
您也可以通過傳遞多個參數來進行多條件搜索。
show
列出所有可用的軟件包,你可以使用?show
?命令。
php composer.phar show
如果你想看到一個包的詳細信息,你可以輸入一個包名稱。
php composer.phar show monolog/monolog
name : monolog/monolog
versions : master-dev, 1.0.2, 1.0.1, 1.0.0, 1.0.0-RC1
type : library
names : monolog/monolog
source : [git] http://github.com/Seldaek/monolog.git 3d4e60d0cbc4b888fe5ad223d77964428b1978da
dist : [zip] http://github.com/Seldaek/monolog/zipball/3d4e60d0cbc4b888fe5ad223d77964428b1978da 3d4e60d0cbc4b888fe5ad223d77964428b1978da
license : MIT
autoload
psr-0
Monolog : src/
requires
php >=5.3.0
你甚至可以輸入一個軟件包的版本號,來顯示該版本的詳細信息。
php composer.phar show monolog/monolog 1.0.2
depends
depends
?命令可以查出已安裝在你項目中的某個包,是否正在被其它的包所依賴,并列出他們。
php composer.phar depends --link-type=require monolog/monolog
nrk/monolog-fluent
poc/poc
propel/propel
symfony/monolog-bridge
symfony/symfony
require
?也可以是?require-dev
。validate
在提交?composer.json
?文件,和創(chuàng)建 tag 前,你應該始終運行?validate
?命令。它將檢測你的?composer.json
?文件是否是有效的
php composer.phar validate
status
如果你經常修改依賴包里的代碼,并且它們是從 source(自定義源)進行安裝的,那么?status
?命令允許你進行檢查,如果你有任何本地的更改它將會給予提示。
php composer.phar status
你可以使用?--verbose
?系列參數(-v|vv|vvv)來獲取更詳細的詳細:
php composer.phar status -v
You have changes in the following dependencies:
vendor/seld/jsonlint:
M README.mdown
self-update
將 Composer 自身升級到最新版本,只需要運行?self-update
?命令。它將替換你的?composer.phar
?文件到最新版本。
php composer.phar self-update
如果你想要升級到一個特定的版本,可以這樣簡單的指定它:
php composer.phar self-update 1.0.0-alpha7
如果你已經為整個系統(tǒng)安裝 Composer(參見?全局安裝),你可能需要在?root
?權限下運行它:
sudo composer self-update
config
config
?命令允許你編輯 Composer 的一些基本設置,無論是本地的?composer.json
?或者全局的?config.json
?文件。
php composer.phar config --list
config [options] [setting-key] [setting-value1] ... [setting-valueN]
setting-key
?是一個配置選項的名稱,setting-value1
?是一個配置的值??梢允褂脭到M作為配置的值(像?github-protocols
),多個?setting-value
?是允許的。
有效的配置選項,請查看“架構”章節(jié)的?config?。
$COMPOSER_HOME/config.json
?的全局配置文件。如果不指定該參數,此命令將影響當前項目的 composer.json 文件,或?--file
?參數所指向的文件。--global
?參數時,將會打開全局 composer.json 文件。setting-key
?指定名稱的配置選項。--global
?參數時,將會顯示全局配置選項的列表。--global
?參數一起使用。除了修改配置選項,?config
?命令還支持通過以下方法修改來源信息:
php composer.phar config repositories.foo vcs http://github.com/foo/bar
create-project
你可以使用 Composer 從現有的包中創(chuàng)建一個新的項目。這相當于執(zhí)行了一個?git clone
?或?svn checkout
命令后將這個包的依賴安裝到它自己的 vendor 目錄。
此命令有幾個常見的用途:
要創(chuàng)建基于 Composer 的新項目,你可以使用 "create-project" 命令。傳遞一個包名,它會為你創(chuàng)建項目的目錄。你也可以在第三個參數中指定版本號,否則將獲取最新的版本。
如果該目錄目前不存在,則會在安裝過程中自動創(chuàng)建。
php composer.phar create-project doctrine/orm path 2.2.*
此外,你也可以無需使用這個命令,而是通過現有的?composer.json
?文件來啟動這個項目。
默認情況下,這個命令會在 packagist.org 上查找你指定的包。
composer
?資源庫的 HTTP URL,或者是指向某個?packages.json
?文件的本地路徑。stable
。source
?安裝。dist
?安裝。require-dev
?字段中列出的包。dump-autoload
某些情況下你需要更新 autoloader,例如在你的包中加入了一個新的類。你可以使用?dump-autoload
?來完成,而不必執(zhí)行?install
?或?update
?命令。
此外,它可以打印一個優(yōu)化過的,符合 PSR-0/4 規(guī)范的類的索引,這也是出于對性能的可考慮。在大型的應用中會有許多類文件,而 autoloader 會占用每個請求的很大一部分時間,使用 classmaps 或許在開發(fā)時不太方便,但它在保證性能的前提下,仍然可以獲得 PSR-0/4 規(guī)范帶來的便利。
licenses
列出已安裝的每個包的名稱、版本、許可協(xié)議??梢允褂?--format=json
?參數來獲取 JSON 格式的輸出。
run-script
你可以運行此命令來手動執(zhí)行?腳本,只需要指定腳本的名稱,可選的?--no-dev
?參數允許你禁用開發(fā)者模式。
diagnose
如果你覺得發(fā)現了一個 bug 或是程序行為變得怪異,你可能需要運行?diagnose
?命令,來幫助你檢測一些常見的問題。
php composer.phar diagnose
archive
此命令用來對指定包的指定版本進行 zip/tar 歸檔。它也可以用來歸檔你的整個項目,不包括 excluded/ignored(排除/忽略)的文件。
php composer.phar archive vendor/package 2.0.21 --format=zip
help
使用?help
?可以獲取指定命令的幫助信息。
php composer.phar help install
你可以設置一些環(huán)境變量來覆蓋默認的配置。建議盡可能的在?composer.json
?的?config
?字段中設置這些值,而不是通過命令行設置環(huán)境變量。值得注意的是環(huán)境變量中的值,將始終優(yōu)先于?composer.json
?中所指定的值。
環(huán)境變量?COMPOSER
?可以為?composer.json
?文件指定其它的文件名。
例如:
COMPOSER=composer-other.json php composer.phar install
通過設置這個環(huán)境變量,你可以指定 root 包的版本,如果程序不能從 VCS 上猜測出版本號,并且未在?composer.json
?文件中申明。
通過設置這個環(huán)境變量,你可以指定 composer 將依賴安裝在?vendor
?以外的其它目錄中。
通過設置這個環(huán)境變量,你可以指定?bin
(Vendor Binaries)目錄到?vendor/bin
?以外的其它目錄。
如果你是通過 HTTP 代理來使用 Composer,你可以使用?http_proxy
?或?HTTP_PROXY
?環(huán)境變量。只要簡單的將它設置為代理服務器的 URL。許多操作系統(tǒng)已經為你的服務設置了此變量。
建議使用?http_proxy
(小寫)或者兩者都進行定義。因為某些工具,像 git 或 curl 將使用?http_proxy
?小寫的版本。另外,你還可以使用?git config --global http.proxy
?來單獨設置 git 的代理。
如果你是使用代理服務器,并且想要對某些域名禁用代理,就可以使用?no_proxy
?環(huán)境變量。只需要輸入一個逗號相隔的域名?排除?列表。
此環(huán)境變量接受域名、IP 以及 CIDR地址塊。你可以將它限制到一個端口(例如::80
)。你還可以把它設置為?*
?來忽略所有的 HTTP 代理請求。
如果你使用了 HTTP 代理,但它不支持?request_fulluri
?標簽,那么你應該設置這個環(huán)境變量為?false
?或?0
?,來防止 composer 從?request_fulluri
?讀取配置。
如果你使用了 HTTPS 代理,但它不支持?request_fulluri
?標簽,那么你應該設置這個環(huán)境變量為?false
?或?0
?,來防止 composer 從?request_fulluri
?讀取配置。
COMPOSER_HOME
?環(huán)境變量允許你改變 Composer 的主目錄。這是一個隱藏的、所有項目共享的全局目錄(對本機的所有用戶都可用)。
它在各個系統(tǒng)上的默認值分別為:
/home//.composer
。/Users//.composer
。C:\Users\\AppData\Roaming\Composer
。你可以在?COMPOSER_HOME
?目錄中放置一個?config.json
?文件。在你執(zhí)行?install
?和?update
?命令時,Composer 會將它與你項目中的?composer.json
?文件進行合并。
若?全局?和?項目?存在相同配置項,那么項目中的?composer.json
?文件擁有更高的優(yōu)先級。
COMPOSER_CACHE_DIR
?環(huán)境變量允許你設置 Composer 的緩存目錄,這也可以通過?cache-dir
?進行配置。
它在各個系統(tǒng)上的默認值分別為:
$COMPOSER_HOME/cache
。C:\Users\\AppData\Local\Composer
?或?%LOCALAPPDATA%/Composer
。這個環(huán)境變量控制著 Composer 執(zhí)行命令的等待時間(例如:git 命令)。默認值為300秒(5分鐘)。
這個環(huán)境變量控制著 discard-changes?config option。
如果設置為1,這個環(huán)境變量將使 Composer 在執(zhí)行每一個命令時都放棄交互,相當于對所有命令都使用了?--no-interaction
。可以在搭建?虛擬機/持續(xù)集成服務器?時這樣設置。
更多建議: