Config
下面由composer命令使用教程欄目給大家介紹 composer.json 中配置相關(guān)的信息。
process-timeout 請求過程超時設(shè)置
默認(rèn)請求超時時間設(shè)置為 300 秒 ,像使用 Git 進(jìn)行 Clone 操作時一樣,Composer 可以在請求超時之前一直運行,直到完成安裝。如果你的網(wǎng)絡(luò)速度不夠快,或者要加載的內(nèi)容比較多,可以把超時時間設(shè)置的高一些。
use-include-path 使用包含路徑設(shè)置
默認(rèn)設(shè)置 false,如果設(shè)置成 true, Composer 自動加載器會自動查找 PHP 路徑中包含的類。
preferred-install 安裝首選項設(shè)置
默認(rèn)設(shè)置 auto 模式 ,可以設(shè)置為 source, dist 或者 auto 模式。這個選項允許你將 Composer 設(shè)置為自己喜歡的模式。要進(jìn)行更精確的安裝首選項設(shè)置,可以使用哈希模式。
{ "config": { "preferred-install": { "my-organization/stable-package": "dist", "my-organization/*": "source", "partner-organization/*": "auto", "*": "dist" } } }
請注意:設(shè)置選項模式使用的順序很重要。精確的設(shè)置模式應(yīng)該在寬泛的設(shè)置模式之前使用,精確的模式設(shè)置才會生效。在全局和包設(shè)置中,當(dāng)混合使用字符串與哈希進(jìn)行設(shè)置時,字符串設(shè)置項將轉(zhuǎn)換為 * 模式。
store-auths
認(rèn)證彈框后采取的動作,有三個選項:
true 永遠(yuǎn)存儲認(rèn)證信息;
false 不存儲認(rèn)證信息;
"prompt" 每一次都會要求重新驗證,此為默認(rèn)項。
github-protocols
默認(rèn)為 ["https", "ssh", "git"]。從 github.com 克隆時使用的協(xié)議優(yōu)先級清單,git 協(xié)議不是加密傳輸,所以只有當(dāng) secure-http 項設(shè)置為關(guān)閉時,才會優(yōu)先使用 git 協(xié)議進(jìn)行克隆。如果你想設(shè)置遠(yuǎn)程 Push URL 使用 HTTPS 協(xié)議而非 SSH (git@github.com:…) 協(xié)議,你可以只設(shè)置 ["https"] ,這樣 Composer 就會停止重寫 Push URL 為 SSH 協(xié)議。
github-oauth
一個域名和 Oauth Keys 的列表。 例如:使用 {"github.com": "oauthtoken"} 作為此選項的值, 將使用 oauthtoken 來訪問 github 上的私人倉庫,并繞過基于 IP 的 API 使用頻率。 點此獲取 關(guān)于如何獲取 GitHub 的 OAuth token。
gitlab-oauth
一個域名和 Oauth Keys 的列表。 例如:使用 {"gitlab.com": "oauthtoken"} 作為此選項的值, 將使用 oauthtoken 來訪問 Gitlab 上的私人倉庫。請注意:如果你的代碼不是托管在 gitlab.com 上的,你還需要配置這個參數(shù) —— gitlab-domains 。
gitlab-token
一個域名和 Private Token 的列表。例如: 使用 {"gitlab.com": "privatetoken"} 作為這個選項的值,將使用 privatetoken 來訪問 Gitlab 上的私人倉庫。請注意:如果你的代碼不是托管在 gitlab.com 上的,你還必須指定這個參數(shù) —— gitlab-domains 。
disable-tls
默認(rèn)為 false。如果設(shè)置為 true,所有的 HTTPS URL 將會被替換成 HTTP,并且網(wǎng)絡(luò)層加密將不被使用。開啟這個選項會有安全風(fēng)險,所以不建議開啟,更好地辦法是在 php.ini 中開啟 php_openssl 擴(kuò)展。
secure-http
默認(rèn)為 true 。如果設(shè)置為 true,只有 HTTPS URL 才被允許在 Composer 中使用,如果你真的確定需要使用 HTTP 來訪問一些東西,你可以關(guān)閉它,但使用 Let's Encrypt 這樣的供應(yīng)商來獲得一個免費的 SSL 證書會是一個更好地選擇。
bitbucket-oauth
一個域名和使用者名稱的列表。比如使用 {"bitbucket.org": {"consumer-key": "myKey", "consumer-secret": "mySecret"}}。 詳見 了解如何在 BitBucket 創(chuàng)建一個使用者。
cafile
本地文件系統(tǒng)中認(rèn)證證書的位置。在 PHP 5.6+ 中你應(yīng)該在 php.ini 通過 openssl.cafile 來設(shè)置,盡管在 PHP 5.6+ 中這會被自動獲取。
capath
如果證書文件未指定或在那個位置沒找到證書,則系統(tǒng)會在 capath 所指定的文件中查找一個合適的證書。capath 必須是一個存在被正確哈希加密證書的目錄。
http-basic
一個域名和存儲驗證所需用戶名密碼的列表。例如使用 {"example.org": {"username": "alice", "password": "foo"}} 作為它的值,則會讓 Composer 用指定的用戶名密碼去驗證 example.org。
注意:與驗證相關(guān)的設(shè)置項比如 http-basic 和 github-oauth 也可以定義在 auth.json 文件中,脫離 composer.json。通過這樣你可以讓 Git 忽略它,并且每個開發(fā)者可以存儲他們自己的驗證憑據(jù)。
platform
讓你偽裝平臺擴(kuò)展包(PHP 和 其擴(kuò)展)以便于模擬生產(chǎn)環(huán)境以及在設(shè)置中定義你的目標(biāo)平臺。例如:{"php": "7.0.3", "ext-something": "4.0.3"}。
vendor-dir
默認(rèn)是 vendor。你也可以在一個不同的目錄安裝所需依賴。$HOME 和 ~ 在 vendor 和下面所有的 *-dir 目錄中會被替換成你的 HOME 目錄。
bin-dir
默認(rèn)是 vendor/bin。如果一個項目包含可執(zhí)行文件,那它們會在這個目錄中做符號鏈接。
data-dir
在 WIndows 中默認(rèn)是 C:Users<user>AppDataRoamingComposer,在遵守 XDG 目錄定義的 unix 系統(tǒng)中是 $XDG_DATA_HOME/composer,在其他 unix 系統(tǒng)中則會是 $home?,F(xiàn)在它只用來存儲舊版本的 composer.phar 文件來以防回滾。詳見 COMPOSER_HOME。
cache-dir
在 WIndows 中默認(rèn)是 C:Users<user>AppDataLocalComposer,在遵守 XDG 目錄定義的 unix 系統(tǒng)中是 $XDG_CACHE_HOME/composer,在其他 unix 系統(tǒng)中則會是 $home/cache。存儲 Composer 用到的所有緩存文件。詳見 COMPOSER_HOME。
cache-files-dir
默認(rèn)是 $cache-dir/files。存儲所有擴(kuò)展包的 ZIP 壓縮包。
cache-repo-dir
默認(rèn)是 $cache-dir/repo。存儲 composer 類型倉庫的元數(shù)據(jù)和 svn, fossil, github, bitbucket 類型倉庫的 VCS 倉庫。
cache-vcs-dir
默認(rèn)是 $cache-dir/vcs。存儲所有 git/hg 類型倉庫所克隆的文件以加快安裝速度。
cache-files-ttl
默認(rèn)是 15552000 (6 個月)。Composer 會緩存它下載的所有擴(kuò)展包構(gòu)建的文件 (zip, tar, ..) 。默認(rèn) 6 個月不使用就會被清空。此設(shè)置項允許你更改這個過期時間(秒為單位)或設(shè)為 0 來完全禁用。
cache-files-maxsize
默認(rèn)是 300MiB。 Composer 會緩存它下載的所有擴(kuò)展包構(gòu)建的文件 (zip, tar, ..) 。這是它在定期執(zhí)行垃圾回收時允許緩存文件占用的最大空間。更舊或是不經(jīng)常使用的緩存會被清除。
bin-compat
默認(rèn)是 auto。決定了可執(zhí)行文件安裝時需要的兼容性。如果設(shè)為 auto,則在 Windows 中只會安裝 .bat 文件。如果設(shè)為 full 那么除了 .bat,unix 系統(tǒng)所需要的腳本文件也會被安裝。這主要是為了處理執(zhí)行 Composer 和項目運行所在系統(tǒng)不一致的情況。
prepend-autoloader
默認(rèn)是 true。如果設(shè)為 false,Composer 的自動加載器則不會預(yù)載入到已存在的自動加載器中。這有時可以用來修復(fù)一些因與其他加載器共用導(dǎo)致的一些問題。
autoloader-suffix
默認(rèn)是 null。會用做 Composer 自動加載器后綴的字符串。如果為空,則會生成一組隨機(jī)字符串。
optimize-autoloader
默認(rèn)是 false。如果設(shè)為 true,則總會在生成自動加載器時進(jìn)行優(yōu)化。
sort-packages
默認(rèn)是 false。如果設(shè)為 true,執(zhí)行 require 命令時會始終保持 composer.json 文件中的擴(kuò)展包名按照字母順序排列。
classmap-authoritative
默認(rèn)是 false。如果設(shè)為 true,Composer 自動加載器只會載入 classmap 中的類。此項會啟用 optimize-autoloader。
apcu-autoloader
默認(rèn)是 false。如果設(shè)為 true,Composer 自動加載器會檢查 APCu,并且當(dāng)擴(kuò)展被啟用時,使用它來緩存找到和未找到的類。
github-domains
默認(rèn)是 ["github.com"]。一個在 gitHub 模式中使用的域名列表。GitHub Enterprise 可能會用到此項。
github-expose-hostname
默認(rèn)是 true。如果設(shè)為 false,為訪問 Github API 創(chuàng)建的 OAuth 令牌會有一個日期而不是主機(jī)名。
gitlab-domains
默認(rèn)是 ["gitlab.com"]。一個 Gitlab 服務(wù)器的域名列表。如果你使用 gitlab 倉庫類型時可能會用到此項。
notify-on-install
默認(rèn)是 true。Composer 允許倉庫定義一個通知 URL,以便于在基于此倉庫的擴(kuò)展包被安裝時接收通知。此項允許你禁用此行為。
discard-changes
默認(rèn)是 false 并且可以被設(shè)為 true,false 或 "stash"。此項允許你設(shè)置在升級過程中發(fā)生沖突時的默認(rèn)行為。true 會放棄 vendors 中的更改,而 "stash" 嘗試著去暫存以便于恢復(fù)。如果你的 CI 服務(wù)器或部署腳本可能會更改 vendors,那么可以使用該設(shè)置。
archive-format
默認(rèn)是 tar。Composer 允許你設(shè)置在工作流需要創(chuàng)建特定格式壓縮包時的默認(rèn)壓縮格式。
archive-dir
默認(rèn)是 .。Composer 允許你設(shè)置在工作流需要創(chuàng)建特定格式壓縮包時的默認(rèn)壓縮文件存儲路徑。也為了模塊間的開發(fā)變得更加容易。
舉個例子:
{ "config": { "archive-dir": "/home/user/.composer/repo" } }
htaccess-protect
默認(rèn)是 true。如果設(shè)為 false,Composer 不會在 COMPOSER_HOME、cache、和數(shù)據(jù)目錄創(chuàng)建 .htaccess 文件。