命令列介面 / 指令#

您已經了解如何使用命令列介面來執行某些操作。本章文件記錄所有可用的指令。

如需取得命令列協助,請呼叫 composercomposer list 以查看指令清單,然後 --help 與任何一個指令結合使用可提供更多資訊。

由於組合器使用 symfony/console,因此在不具歧義的情況下,您可以用簡短名稱呼叫指令。

php composer.phar dump

呼叫 composer dump-autoload

Bash 自動完成#

下載 bash 語法提示,你可以執行這串 composer completion bash > completion.bash。這樣會在當前目錄建立一個 completion.bash 檔案。

接著執行 source completion.bash 來在當前終端機工作階段啟用它。

移動 completion.bash 檔案到 /etc/bash_completion.d/composer 並重新命名,讓它能夠在新終端機自動載入。

全局選項#

下列選項可用於每個指令

  • --verbose (-v): 增加訊息顯示詳細程度。
  • --help (-h): 顯示說明資訊。
  • --quiet (-q): 不輸出任何訊息。
  • --no-interaction (-n): 不要要求任何互動式問題。
  • --no-plugins: 停用外掛程式。
  • --no-scripts: 略過執行在 composer.json 中定義的腳本。
  • --no-cache: 停用快取目錄的使用。如同將 COMPOSER_CACHE_DIR 環境變數設定為 /dev/null(或是在 Windows 上是 NUL)。
  • --working-dir (-d): 如果有指定,使用給定的目錄作為工作目錄。
  • --profile: 顯示時間和記憶體使用資訊
  • --ansi: 強制 ANSI 輸出。
  • --no-ansi: 停用 ANSI 輸出。
  • --version (-V): 顯示此應用程式版本。

程式結束碼#

  • 0: 順利
  • 1: 一般/不明的錯誤碼
  • 2: 相依性解決錯誤碼

init#

函式庫 章節我們了解了如何手動建立 composer.json。而且,也有可用的 init 指令來執行這項工作。

當你執行此指令時,它會互動式地請你填寫欄位,同時會使用一些智慧預設值。

php composer.phar init

選項

  • --name: 套件的名稱。
  • --description: 套件的說明。
  • --author: 套件的作者名稱。
  • --type: 套件的類型。
  • --homepage: 套件的主頁。
  • --require: 套件需求與版本約束的搭配。格式應該是 foo/bar:1.0.0.
  • --require-dev: 開發需求,請參閱 --require.
  • --stability (-s): minimum-stability 欄位的數值。
  • --license (-l): 套件授權。
  • --repository: 提供一個(或多個)自訂存放庫。它們會儲存在產生的 composer.json 中,並在提示需要清單輸入時用於自動完成。每個存放庫可以是指向 composer 存放庫的 HTTP URL,或者是類似於 repositories 鍵所接受的 JSON 字串。
  • --autoload (-a): 將 PSR-4 自動載入對應新增到 composer.json。自動將套件的命名空間對應到提供的目錄。(預期是相對路徑,例如 src/)另請參閱 PSR-4 自動載入

install / i#

install 命令會從目前目錄讀取 composer.json 檔案,解析相依關係並將其安裝至 vendor

php composer.phar install

如果目前目錄中有 composer.lock 檔案,它會使用確切版本來取代解析。這樣可確保每個使用函式庫的人都會取得相同版本的相依關係。

如果沒有 composer.lock 檔案,Composer 會在解析相依關係後建立一個。

選項

  • --prefer-install: 有兩種下載套件的方式:sourcedist。Composer 預設使用 dist。如果您傳遞 --prefer-install=source(或 --prefer-source),Composer 會在有原始碼的情況下從 source 安裝。如果您想修改專案的錯誤並直接取得相依關係的本機 git 分身,這會很有用。若要讓 Composer 自動為套件開發版本使用 source 的舊有行為,請使用 --prefer-install=auto。另請參閱 config.preferred-install。傳遞此 flag 會覆寫組態值。
  • --dry-run:如果您想在沒有實際安裝套件的情況下執行安裝,您可以使用 --dry-run。這會模擬安裝並顯示會發生什麼事。
  • --download-only: 僅下載,不要安裝套件。
  • --dev: 安裝列在 require-dev 中的套件(這是預設行為)。
  • --no-dev: 略過安裝列在 require-dev 中的套件。自動載入器產生會略過 autoload-dev 規則。另請參閱 COMPOSER_NO_DEV
  • --no-autoloader: 略過自動載入器產生。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --audit: 在安裝完成後執行稽核。
  • --audit-format: 稽核輸出格式。必須為「table」、「plain」、「json」或「summary」(預設)。
  • --optimize-autoloader (-o): 將 PSR-0/4 自動載入轉換為類別映射,以取得更快的自動載入器。特別建議對製作環境這麼做,但執行可能需要一些時間,因此目前不會預設這麼做。
  • --classmap-authoritative (-a): 僅從類別映射自動載入類別。隱式啟用 --optimize-autoloader
  • --apcu-autoloader: 使用 APCu 快取找到/找不到的類別。
  • --apcu-autoloader-prefix: 為 APCu 自動載入器快取使用自訂字首。隱式啟用 --apcu-autoloader
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並在本地電腦不滿足這些需求的情況下強制安裝。另請參閱 platform 組態選項。
  • --ignore-platform-req: 忽略特定平台需求 (phphhvmlib-*ext-*),即使本機不符合需求,也能強制安裝。可透過萬用字元來忽略多項需求。加碼 + 會只忽略需求的上限。例如,如果某套件需要 php: ^7,則選項 --ignore-platform-req=php+ 就會允許在 PHP 8 上安裝,不過在 PHP 5.6 上安裝時還是會失敗。

更新 / u / 升級#

若要取得相依性的最新版本並更新 composer.lock 檔案,您應該使用 update 指令。此指令也別名為 upgrade,因為它的功能與如果您想到 apt-get 或類似套件管理員時 upgrade 的功能相同。

php composer.phar update

這將會解決專案的所有相依性,並將確切版本寫入 composer.lock

如果您僅想要更新其中幾個 (而非全部) 套件,則可以列出它們舉例如下

php composer.phar update vendor/package vendor/package2

您也可以使用萬用字元來一次更新一堆套件

php composer.phar update "vendor/*"

如果您想要將某個套件降級為特定版本,而不會變更您的 composer.json,您可以使用 --with 並提供自訂版本限制

php composer.phar update --with vendor/package:2.0.1

請注意,透過上述方式所有套件都會更新。如果您僅想要更新提供 --with 的自訂限制套件,您可以略過 --with 而改在部分更新語法中使用限制

php composer.phar update vendor/package:2.0.1 vendor/package2:3.0.*

注意:對於 composer.json 中也需要的套件,自訂限制必須是現有限制的子集。 composer.json 限制仍然套用,且 composer.json 也不會受到這些暫時性更新限制的修改。

選項

  • --prefer-install: 有兩種下載套件的方式:sourcedist。Composer 預設使用 dist。如果您傳遞 --prefer-install=source(或 --prefer-source),Composer 會在有原始碼的情況下從 source 安裝。如果您想修改專案的錯誤並直接取得相依關係的本機 git 分身,這會很有用。若要讓 Composer 自動為套件開發版本使用 source 的舊有行為,請使用 --prefer-install=auto。另請參閱 config.preferred-install。傳遞此 flag 會覆寫組態值。
  • --dry-run: 模擬指令,而不會實際執行任何操作。
  • --dev: 安裝列在 require-dev 中的套件(這是預設行為)。
  • --no-dev: 略過安裝列在 require-dev 中的套件。自動載入器產生會略過 autoload-dev 規則。另請參閱 COMPOSER_NO_DEV
  • --no-install: 在更新 composer.lock 檔案後,不會執行安裝步驟。
  • --no-audit: 在更新 composer.lock 檔案後,不會執行稽核步骤。另請參閱 COMPOSER_NO_AUDIT
  • --audit-format: 稽核輸出格式。必須為「table」、「plain」、「json」或「summary」(預設)。
  • --lock: 覆寫鎖定檔案 hash,以壓制鎖定檔案過期的警告,而不更新套件版本。如果鏡像和 URL 等套件中繼資料已變更,則會更新。
  • --with: 要加入的暫時性版本限制,例如 foo/bar:1.0.0 或 foo/bar=1.0.0
  • --no-autoloader: 略過自動載入器產生。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --with-dependencies (-w): 除了那些是根需求的之外,也更新參數清單中套件的相依性。
  • --with-all-dependencies (-W): 除了那些是根需求的之外,也更新參數清單中套件的相依性,包括那些是根需求的。
  • --optimize-autoloader (-o): 將 PSR-0/4 自動載入轉換為類別對應,以取得更快的自動載入。這特別建議用於產製,不過執行可能需要花一點時間,因此目前並未預設執行。
  • --classmap-authoritative (-a): 僅從類別映射自動載入類別。隱式啟用 --optimize-autoloader
  • --apcu-autoloader: 使用 APCu 快取找到/找不到的類別。
  • --apcu-autoloader-prefix: 為 APCu 自動載入器快取使用自訂字首。隱式啟用 --apcu-autoloader
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並在本地電腦不滿足這些需求的情況下強制安裝。另請參閱 platform 組態選項。
  • --ignore-platform-req: 忽略特定平台需求 (phphhvmlib-*ext-*),即使本機不符合需求,也能強制安裝。可透過萬用字元來忽略多項需求。加碼 + 會只忽略需求的上限。例如,如果某套件需要 php: ^7,則選項 --ignore-platform-req=php+ 就會允許在 PHP 8 上安裝,不過在 PHP 5.6 上安裝時還是會失敗。
  • --prefer-stable:偏好相依項的穩定版本。也可透過 COMPOSER_PREFER_STABLE=1 環境變數設定。
  • --prefer-lowest:偏好相依項的最低版本。可用於測試最低版 requirement 時使用,通常與 --prefer-stable 共同使用。也可透過 COMPOSER_PREFER_LOWEST=1 環境變數設定。
  • --minimal-changes (-m):在使用 -w/-W 進行部分更新期間,僅執行傳遞相依項的必要變更。也可透過 COMPOSER_MINIMAL_CHANGES=1 環境變數設定。
  • --interactive:具有自動完成功能的互動式介面,用於選擇要更新的套件。
  • --root-reqs:將更新限制為您的第一層級相依項。

mirrorslocknothing 字詞之一指定為引數,其效果與指定選項 --lock 相同,例如 composer update mirrorscomposer update --lock 完全相同。

require / r#

require 指令會從目前目錄將新的套件加入 composer.json 檔案。如果檔案不存在,將隨創建一個。

如果您未指定套件,Composer 會提示您搜尋套件,並根據提供的結果提供需要相符的清單。

php composer.phar require

在新增/變更需求後,將安裝或更新已修改的 requirement。

如果您不想互動式地選擇 requirement,您可以將其傳遞給指令。

php composer.phar require "vendor/package:2.*" vendor/package2:dev-master

如果您未指定版本約束,composer 會根據可用套件版本選擇合適版本。

php composer.phar require vendor/package vendor/package2

如果您不想立即安裝新的相依項,您可以使用 --no-update 呼叫它

選項

  • --dev:將套件加入 require-dev
  • --dry-run: 模擬指令,而不會實際執行任何操作。
  • --prefer-install: 有兩種下載套件的方式:sourcedist。Composer 預設使用 dist。如果您傳遞 --prefer-install=source(或 --prefer-source),Composer 會在有原始碼的情況下從 source 安裝。如果您想修改專案的錯誤並直接取得相依關係的本機 git 分身,這會很有用。若要讓 Composer 自動為套件開發版本使用 source 的舊有行為,請使用 --prefer-install=auto。另請參閱 config.preferred-install。傳遞此 flag 會覆寫組態值。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --no-update:停用相依項的自動更新(暗示 --no-install)。
  • --no-install: 在更新 composer.lock 檔案後,不會執行安裝步驟。
  • --no-audit: 在更新 composer.lock 檔案後,不會執行稽核步骤。另請參閱 COMPOSER_NO_AUDIT
  • --audit-format: 稽核輸出格式。必須為「table」、「plain」、「json」或「summary」(預設)。
  • --update-no-dev:使用 --no-dev 選項執行相依項更新。另請參閱 COMPOSER_NO_DEV
  • --update-with-dependencies (-w):也更新新需要套件的相依項,但不包括那些是 root requirement 的套件。
  • --update-with-all-dependencies (-W):也更新新需要套件的相依項,包括那些是 root requirement 的套件。
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並在本地電腦不滿足這些需求的情況下強制安裝。另請參閱 platform 組態選項。
  • --ignore-platform-req:忽略特定的平台 requirement(phphhvmlib-*ext-*)並強制安裝,即使本地機器不符合 requirement。可以使用萬用字元忽略多個 requirement。
  • --prefer-stable:偏好相依項的穩定版本。也可透過 COMPOSER_PREFER_STABLE=1 環境變數設定。
  • --prefer-lowest:偏好相依項的最低版本。可用於測試最低版 requirement 時使用,通常與 --prefer-stable 共同使用。也可透過 COMPOSER_PREFER_LOWEST=1 環境變數設定。
  • --minimal-changes (-m):在使用 -w/-W 更新期間,僅執行傳遞相依項的必要變更。也可透過 COMPOSER_MINIMAL_CHANGES=1 環境變數設定。
  • --sort-packages:使套件在 composer.json 中保持排序。
  • --optimize-autoloader (-o): 將 PSR-0/4 自動載入轉換為類別對應,以取得更快的自動載入。這特別建議用於產製,不過執行可能需要花一點時間,因此目前並未預設執行。
  • --classmap-authoritative (-a): 僅從類別映射自動載入類別。隱式啟用 --optimize-autoloader
  • --apcu-autoloader: 使用 APCu 快取找到/找不到的類別。
  • --apcu-autoloader-prefix: 為 APCu 自動載入器快取使用自訂字首。隱式啟用 --apcu-autoloader

remove / rm / uninstall#

remove 指令會從目前目錄移除 composer.json 檔案中的套件。

php composer.phar remove vendor/package vendor/package2

在移除 requirement 後,將卸載已修改的 requirement。

選項

  • --unused 移除不用且不再是直接或間接相依的套件
  • --dev:require-dev 中移除套件。
  • --dry-run: 模擬指令,而不會實際執行任何操作。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --no-update:停用相依項的自動更新(暗示 --no-install)。
  • --no-install: 在更新 composer.lock 檔案後,不會執行安裝步驟。
  • --no-audit: 安裝完成後不執行 audit 步驟。請參閱 COMPOSER_NO_AUDIT
  • --audit-format: 稽核輸出格式。必須為「table」、「plain」、「json」或「summary」(預設)。
  • --update-no-dev: 以 --no-dev 選項執行相依性更新。請參閱 COMPOSER_NO_DEV
  • --update-with-dependencies (-w): 同時更新被移除套件的相依性。(已淘汰,現在是預設行為)
  • --update-with-all-dependencies (-W): 允許更新所有繼承的相依性,包含 root 需求性。
  • --minimal-changes (-m):在使用 -w/-W 更新期間,僅執行傳遞相依項的必要變更。也可透過 COMPOSER_MINIMAL_CHANGES=1 環境變數設定。
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並在本地電腦不滿足這些需求的情況下強制安裝。另請參閱 platform 組態選項。
  • --ignore-platform-req:忽略特定的平台 requirement(phphhvmlib-*ext-*)並強制安裝,即使本地機器不符合 requirement。可以使用萬用字元忽略多個 requirement。
  • --optimize-autoloader (-o): 將 PSR-0/4 自動載入轉換為類別映射,以取得更快的自動載入器。特別建議對製作環境這麼做,但執行可能需要一些時間,因此目前不會預設這麼做。
  • --classmap-authoritative (-a): 僅從類別映射自動載入類別。隱式啟用 --optimize-autoloader
  • --apcu-autoloader: 使用 APCu 快取找到/找不到的類別。
  • --apcu-autoloader-prefix: 為 APCu 自動載入器快取使用自訂字首。隱式啟用 --apcu-autoloader

bump#

bump 指令將 composer.json 需求的較低限制提高到目前安裝的版本。這有助於確保相依性不會因為其他衝突而意外降級,並且可以稍微改善相依性解析效能,因為它會限制 Composer 必須查看的套件版本數量。

不建議在函式庫上盲目執行這個指令,因為它會縮小允許的相依性,可能導致使用者發生相依性問題。可以在函式庫上使用 --dev-only 執行,因為開發需求對函式庫是本地的,不會影響套件的消費者。

選項

  • --dev-only: 僅增加「require-dev」的需求性。
  • --no-dev-only: 僅增加「require」的需求性。
  • --dry-run: 輸出要增加的套件,但不會執行任何動作。

reinstall#

reinstall 指令會按名稱查詢已安裝的套件,將其解除安裝,再重新安裝。如果你弄亂檔案,或者因為想要使用 --prefer-install 變更安裝類型,就可以用此方式乾淨安裝套件。

php composer.phar reinstall acme/foo acme/bar

你可以指定多個套件名稱以重新安裝,或使用通配符一次選取多個套件

php composer.phar reinstall "acme/*"

選項

  • --prefer-install: 有兩種下載套件的方式:sourcedist。Composer 預設使用 dist。如果您傳遞 --prefer-install=source(或 --prefer-source),Composer 會在有原始碼的情況下從 source 安裝。如果您想修改專案的錯誤並直接取得相依關係的本機 git 分身,這會很有用。若要讓 Composer 自動為套件開發版本使用 source 的舊有行為,請使用 --prefer-install=auto。另請參閱 config.preferred-install。傳遞此 flag 會覆寫組態值。
  • --no-autoloader: 略過自動載入器產生。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --optimize-autoloader (-o): 將 PSR-0/4 自動載入轉換為類別映射,以取得更快的自動載入器。特別建議對製作環境這麼做,但執行可能需要一些時間,因此目前不會預設這麼做。
  • --classmap-authoritative (-a): 僅從類別映射自動載入類別。隱式啟用 --optimize-autoloader
  • --apcu-autoloader: 使用 APCu 快取找到/找不到的類別。
  • --apcu-autoloader-prefix: 為 APCu 自動載入器快取使用自訂字首。隱式啟用 --apcu-autoloader
  • --ignore-platform-reqs: 忽視所有平台需求。這僅會影響重新安裝指令的自動載入器產生背景。
  • --ignore-platform-req: 忽視特定平台需求。這僅會影響重新安裝指令的自動載入器產生背景。可以透過通配符忽視多個需求。

check-platform-reqs#

check-platform-reqs 指令會檢查你的 PHP 和擴充元件版本是否符合已安裝套件的平台需求。例如,可以利用這個指令驗證正式伺服器是否具有執行專案所需的擴充元件,以便在安裝後執行。

與 update/install 不同,這個指令會忽略 config.platform 設定,並檢查實際的平台套件,因此你可以確定具有必要的平台相依性。

選項

  • --lock: 僅檢查封鎖檔案中的需求,而不檢查已安裝的套件。
  • --no-dev: 停用檢查所需開發套件的需求。
  • --format (-f): 輸出格式:文字 (預設) 或 json

全域#

全域指令讓您能執行其他指令,例如 installremoverequireupdate,就像您從 COMPOSER_HOME 目錄中執行的指令一樣。

這僅是一個幫助程式,用來管理儲存在集中位置的專案,這個專案可以容納您想要在各處使用的 CLI 工具或 Composer 外掛程式。

這可以用來安裝全域 CLI 效用程式。以下是範例

php composer.phar global require friendsofphp/php-cs-fixer

現在,php-cs-fixer 二進位檔已經在全域可用。請確定您的全域 供應商二進位檔 目錄在您的 $PATH 環境變數中,您可以使用下列指令取得其位置。

php composer.phar global config bin-dir --absolute

如果您想要稍後更新二進位檔,您可以執行全域更新。

php composer.phar global update

搜尋指令讓您可以搜尋目前專案的套件存放庫。通常會是 packagist。您將搜尋條件傳遞給指令。

php composer.phar search monolog

也可以傳遞多個參數,以搜尋多個條件。

選項

  • --only-name (-N): 僅在套件名稱中搜尋。
  • --only-vendor (-O): 僅搜尋供應商 / 組織名稱,結果僅會傳回「供應商」。
  • --type (-t): 搜尋特定套件類型。
  • --format (-f): 讓您在文字 (預設) 或 json 輸出格式中選擇。請注意在 json 中,僅保證會存在名稱和說明金鑰。其餘 (urlrepositorydownloadsfavers) 可用於 Packagist.org 搜尋結果,且其他存放庫可能會傳回更多或更少資料。

顯示 / 資訊#

若要列出所有可用的套件,可以使用 show 指令。

php composer.phar show

若要篩選清單,可以使用萬用字元,傳遞套件遮罩。

php composer.phar show "monolog/*"
monolog/monolog 2.4.0 Sends your logs to files, sockets, inboxes, databases and various web services

如果您想要查看特定套件的詳細資訊,您可以傳遞套件名稱。

php composer.phar show monolog/monolog
name     : monolog/monolog
descrip. : Sends your logs to files, sockets, inboxes, databases and various web services
keywords : log, logging, psr-3
versions : * 1.27.1
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage : http://github.com/Seldaek/monolog
source   : [git] https://github.com/Seldaek/monolog.git 904713c5929655dc9b97288b69cfeedad610c9a1
dist     : [zip] https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1 904713c5929655dc9b97288b69cfeedad610c9a1
names    : monolog/monolog, psr/log-implementation

support
issues : https://github.com/Seldaek/monolog/issues
source : https://github.com/Seldaek/monolog/tree/1.27.1

autoload
psr-4
Monolog\ => src/Monolog

requires
php >=5.3.0
psr/log ~1.0

您甚至可以傳遞套件版本,它將告訴您該特定版本的詳細資訊。

php composer.phar show monolog/monolog 1.0.2

選項

  • --all: 列出所有存放庫中可用的所有套件。
  • --installed (-i): 列出已安裝的套件 (此功能已預設啟用,並且已淘汰)。
  • --locked: 從 composer.lock 列出封鎖的套件。
  • --platform (-p): 僅列出平台套件 (php & extensions)。
  • --available (-a): 僅列出可用的套件。
  • --self (-s): 列出根套件資訊。
  • --name-only (-N): 僅列出套件名稱。
  • --path (-P): 列出套件路徑。
  • --tree (-t): 以樹狀結構列出您的依存關係。如果您傳遞套件名稱,它將顯示該套件的依存關係樹狀結構。
  • --latest (-l): 列出所有安裝的套件,包括其最新版本。
  • --outdated (-o):隱含 --latest,但只會列出較新版本可用的套件。
  • --ignore:忽略指定的套件。可包含通配符 (*)。與 --outdated 選項搭配使用,如果你不想收到某些套件的新版本通知。
  • --no-dev:從套件清單中過濾開發相關的依賴項。
  • --major-only (-M):與 --latest 或 --outdated 搭配使用。只顯示 SemVer 相容性更新較重要的套件。
  • --minor-only (-m):與 --latest 或 --outdated 搭配使用。只顯示 SemVer 相容性更新較次要的套件。
  • --patch-only:與 --latest 或 --outdated 搭配使用。只顯示 SemVer 相容性更新較輕微的套件。
  • --sort-by-age (-A):顯示安裝版本的日期,並先排序較舊的套件。與 --latest 或 --outdated 選項搭配使用。
  • --direct (-D):將套件清單限制在你的直接依賴項。
  • --strict:在有過期套件時,傳回非零結束程式碼。
  • --format (-f):讓你可以在文字 (預設) 或 json 輸出格式之間選擇。
  • --ignore-platform-reqs:忽略所有平台需求 (phphhvmlib-*ext-*) 並強制安裝,即使本機不符合這些需求。與 --outdated 選項搭配使用。
  • --ignore-platform-req:忽略特定平台需求 (phphhvmlib-*ext-*) 並強制安裝,即使本機不符合。可透過通配符忽略多項需求。與 --outdated 選項搭配使用。

過期#

outdated 命令會顯示已安裝的、有更新項目的套件清單,包括它們的目前版本和最新版本。這基本上是 composer show -lo 的別名。

顏色編碼如下

  • 綠色 (=):依賴項是最新的版本,而且是最新的。
  • 黃色 (~):依賴項有新版本可用,依據 semver 包括向下相容性的中斷,因此可以在方便的時候升級,但可能會牽涉到一些工作。
  • 紅色 (!):依賴項有 semver 相容的新版本,你應該升級。

選項

  • --all (-a):顯示所有套件,而不仅仅过期的 (composer show --latest 的別名)。
  • --direct (-D):將套件清單限制在你的直接依賴項。
  • --strict:如果任何套件過期,則回傳非零結束程式碼。
  • --ignore:忽略指定的套件。可包含通配符 (*)。如果你不想收到某些套件的新版本通知就用它。
  • --major-only (-M):只顯示 SemVer 相容性更新較重要的套件。
  • --minor-only (-m):只顯示 SemVer 相容性更新較次要的套件。
  • --patch-only (-p):只顯示 SemVer 相容性更新較輕微的套件。
  • --sort-by-age (-A):顯示安裝版本的日期,並先排序較舊的套件。
  • --format (-f):讓你可以在文字 (預設) 或 json 輸出格式之間選擇。
  • --no-dev:不要顯示已過期的開發用依賴項。
  • --locked: 顯示鎖定檔案中的套件更新,而不論供應資料夾中的當前版本為何。
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並強制安裝,即使本機未滿足這些需求。
  • --ignore-platform-req:忽略特定的平台 requirement(phphhvmlib-*ext-*)並強制安裝,即使本地機器不符合 requirement。可以使用萬用字元忽略多個 requirement。

瀏覽 / home#

瀏覽(已設定別名為 home)會在您的瀏覽器中開啟套件的存放庫網址或首頁。

選項

  • --首頁 (-H): 開啟首頁,而不是存放庫網址。
  • --show (-s): 只顯示首頁或存放庫網址。

建議#

列出目前安裝的套件集所建議的所有套件。您可選擇傳遞一個或多個 供應商/套件 格式套件名稱,以只限制輸出來自那些套件的建議。

使用 --by-package(預設值)或 --by-suggestion 旗標分別依提供建議的套件或建議套件來分組輸出。

如果您只想要建議套件名稱的清單,請使用 --list

選項

  • --by-package: 依建議套件分組輸出(預設值)。
  • --by-suggestion: 依建議套件分組輸出。
  • --all: 顯示所有依存的建議,包括傳遞的依存(預設值只顯示直接依存的建議)。
  • --list: 只顯示建議套件名稱的清單。
  • --no-dev: 排除來自 require-dev 套件的建議。

資金#

發掘如何協助為您的依存服務募款。此項列出所有已安裝依存的募款連結。請使用 --format=json 來取得機器可讀取的輸出。

選項

  • --format (-f):讓你可以在文字 (預設) 或 json 輸出格式之間選擇。

依賴 / 為什麼#

depends 指令會告訴您哪些其他套件依賴某個套件。與安裝一樣,require-dev 關係只考慮根套件。

php composer.phar depends doctrine/lexer
doctrine/annotations  1.13.3 requires doctrine/lexer (1.*)
doctrine/common       2.13.3 requires doctrine/lexer (^1.0)

您可在套件後選擇性指定版本限制以限制搜尋。

加入 --tree-t 旗標,以顯示為什麼依賴套件的遞迴樹狀結構,例如

php composer.phar depends psr/log -t
psr/log 1.1.4 Common interface for logging libraries
├──composer/composer 2.4.x-dev (requires psr/log ^1.0 || ^2.0 || ^3.0)
├──composer/composer dev-main (requires psr/log ^1.0 || ^2.0 || ^3.0)
├──composer/xdebug-handler 3.0.3 (requires psr/log ^1 || ^2 || ^3)
│  ├──composer/composer 2.4.x-dev (requires composer/xdebug-handler ^2.0.2 || ^3.0.3)
│  └──composer/composer dev-main (requires composer/xdebug-handler ^2.0.2 || ^3.0.3)
└──symfony/console v5.4.11 (conflicts psr/log >=3) (circular dependency aborted here)

選項

  • --遞迴 (-r): 遞迴解析至根套件。
  • --tree (-t): 以嵌套樹狀結構列印結果,暗示 -r。

禁止 / 為什麼不#

prohibits 指令會告訴您哪些套件阻止安裝給定的套件。請指定版本限制,以驗證是否可以在您的專案中執行升級,如果是,為什麼不行。請參閱下列範例

php composer.phar prohibits symfony/symfony 3.1
laravel/framework v5.2.16 requires symfony/var-dumper (2.8.*|3.0.*)

請注意,您也可以指定平台需求,例如檢查您是否可以將伺服器升級至 PHP 8.0

php composer.phar prohibits php 8
doctrine/cache        v1.6.0 requires php (~5.5|~7.0)
doctrine/common       v2.6.1 requires php (~5.5|~7.0)
doctrine/instantiator 1.0.5  requires php (>=5.3,<8.0-DEV)

depends 一樣,您可以要求遞迴查詢,它會列出所有依賴導致衝突的套件的套件。

選項

  • --遞迴 (-r): 遞迴解析至根套件。
  • --tree (-t): 以嵌套樹狀結構列印結果,暗示 -r。

驗證#

在提交 composer.json 檔案和標籤一個版本之前,你應該都執行 validate 命令。它會檢查你的 composer.json 是否有效。

php composer.phar validate

選項

  • --no-check-all: 如果 composer.json 中的要求使用未綁定或過度嚴格的版本限制,則不發出警告。
  • --no-check-lock: 如果 composer.lock 存在且不是最新版本,則不發出錯誤。
  • --no-check-publish: 如果 composer.json 不適合在 Packagist 上發布為一個套件,但除了這點以外是有效的,則不發出錯誤。
  • --with-dependencies: 同時驗證所有已安裝依賴項的 composer.json。
  • --strict: 對於警告和錯誤,回傳一個非零的退出代碼。

狀態#

如果你常需要修改你的依賴項的程式碼,且它們是從來源安裝的,status 命令可以讓你檢查你是否在任何其中擁有本機的變動。

php composer.phar status

利用 --verbose 選項,你可以獲得關於變動的更多資訊

php composer.phar status -v
You have changes in the following dependencies:
vendor/seld/jsonlint:
    M README.mdown

自我更新/selfupdate#

若要將 Composer 本身更新到最新版本,請執行 self-update 命令。它將使用最新版本取代你的 composer.phar

php composer.phar self-update

如果你想更新到某個特定版本,請指定該版本

php composer.phar self-update 2.4.0-RC1

如果你已經為你的整個系統安裝 Composer(請參閱 整體安裝 ),則你可能需要使用 root 權限執行該命令

sudo -H composer self-update

若 Composer 不是以 PHAR 安裝,則此命令不可用。(有時這是因為 Composer 是由作業系統套件管理員安裝的。)

選項

  • --rollback (-r): 回滾到你安裝的最後一個版本。
  • --clean-backups: 在更新過程中刪除舊的備份。這會讓目前版本的 Composer 變成唯一在更新後可取得的備份。
  • --no-progress: 不會輸出下載進度。
  • --update-keys: 提示使用者更新金鑰。
  • --stable: 強制更新至穩定頻道。
  • --preview: 強制更新至預覽頻道。
  • --snapshot: 強制更新至快照頻道。
  • --1: 強制更新至穩定頻道,但僅使用 1.x 版本
  • --2: 強制更新至穩定頻道,但僅使用 2.x 版本
  • --set-channel-only: 僅將頻道儲存為預設頻道,然後結束

設定#

config 命令允許你編輯 Composer 設定和存放庫,這些設定和存放庫可以位在本機的 composer.json 檔案或全域的 config.json 檔案中。

此外,它還讓你編輯本機 composer.json 中大多數的屬性。

php composer.phar config --list

用法#

config [選項] [設定金鑰] [設定值 1] ... [設定值 N]

setting-key 是組態選項名稱,setting-value1 是組態值。對於可以採用陣列值(如 github-protocols)的設定,可以允許多個 setting-value 引數。

您也可以編輯以下屬性的值

descriptionhomepagekeywordslicenseminimum-stabilitynameprefer-stabletypeversion

請參閱 Config 章節,以取得有效的組態選項。

選項

  • --global (-g):預設操作位於 $COMPOSER_HOME/config.json 的全域組態檔。不使用此選項,此指令將影響本機 composer.json 檔或由 --file 指定的檔。
  • --editor (-e):使用 EDITOR 環境變數定義的文字編輯器開啟本機 composer.json 檔。使用 --global 選項,此方法會開啟全域組態檔。
  • --auth (-a):影響驗證組態檔(僅用於 --editor)。
  • --unset:移除由 setting-key 指定名稱的組態元素。
  • --list (-l):顯示目前組態變數的清單。使用 --global 選項只會列出全域組態。
  • --file="..." (-f):操作特定的檔,而非 composer.json。請注意,這無法與 --global 選項結合使用。
  • --absolute:在提取 *-dir 組態值時傳回絕對路徑,而非相對路徑。
  • --json:將設定值解譯為 JSON,與 extra.* 鍵一起使用。
  • --merge:將設定值與目前值合併,與 --json 結合使用時會用於 extra.* 鍵。
  • --append:新增存放庫時,將其新增(最低優先順序)至現有存放庫,而非置於最前面(最高優先順序)。
  • --source:顯示組態值載入的來源。

修改存放庫#

除了修改組態部分外,config 指令也支援變更存放庫部分的方式如下

php composer.phar config repositories.foo vcs https://github.com/foo/bar

如果您的存放庫需要更多組態選項,您可以傳遞其 JSON 表示

php composer.phar config repositories.foo '{"type": "vcs", "url": "http://svn.example.org/my-project/", "trunk-path": "master"}'

修改額外值#

除了修改組態部分外,config 指令也支援變更額外部分的方式如下

php composer.phar config extra.foo.bar value

點表示陣列巢狀,但最大深度為 3 層。上述會設定 "extra": { "foo": { "bar": "value" } }

如果您有複雜的值要新增/修改,您可以使用 --json--merge 旗標編輯額外欄位為 json

php composer.phar config --json extra.foo.bar '{"baz": true, "qux": []}'

建立專案#

您可以使用 Composer 從現有套件建立新專案。這等同於執行 git clone/svn checkout,然後執行 composer install 安裝廠商。

此功能有許多應用方式

  1. 您可以佈署應用程式套件。
  2. 您可以查看任何套件並開始在 patch 中進行開發。
  3. 具有多位開發人員的專案可以使用此功能,為開發中的初始應用程式進行引導。

若要使用 Composer 建立新的專案,可以使用 create-project 指令。傳遞給它一個套件名稱,以及建立專案的目錄。您也可以提供一個版本作為第三個引數,否則將使用最新版本。

如果目錄目前不存在,它將在安裝期間建立。

php composer.phar create-project doctrine/orm path "2.2.*"

您也可以在具有現有 composer.json 檔案的目錄中,不帶參數執行指令來引導專案。

此指令預設會檢查 packagist.org 上的套件。

選項

  • --stability (-s):套件的最低穩定性。預設為 stable
  • --prefer-install: 有兩種下載套件的方式:sourcedist。Composer 預設使用 dist。如果您傳遞 --prefer-install=source(或 --prefer-source),Composer 會在有原始碼的情況下從 source 安裝。如果您想修改專案的錯誤並直接取得相依關係的本機 git 分身,這會很有用。若要讓 Composer 自動為套件開發版本使用 source 的舊有行為,請使用 --prefer-install=auto。另請參閱 config.preferred-install。傳遞此 flag 會覆寫組態值。
  • --repository:提供一個自訂儲存庫來搜尋套件,它將用來取代 packagist。它可以是指向 composer 儲存庫的 HTTP URL、指向本機 packages.json 檔案的路徑,或是類似於 repositories 金鑰接受的 JSON 字串。您可以多次使用它來設定多個儲存庫。
  • --add-repository:將自訂儲存庫新增到 composer.json 中。如果存在鎖定檔案,它將被刪除,而且會執行更新,而不是安裝。
  • --dev:安裝 require-dev 中所列出的套件。
  • --no-dev:停用 require-dev 套件的安裝。
  • --no-scripts:停用根套件中所定義的腳本執行。
  • --no-progress: 移出進度顯示,因為它會干擾某些無法處理退格字元的終端機或指令碼。
  • --no-secure-http:在安裝根套件時,暫時停用 secure-http 設定選項。請自行評估風險後再使用。使用此旗標並非上策。
  • --keep-vcs:略過刪除所建立專案的 VCS 元資料。如果在非互動模式下執行指令,這主要是很有用的。
  • --remove-vcs:強制移除 VCS 元資料,而且不提示。
  • --no-install:停用供應商的安裝。
  • --no-audit: 安裝完成後不執行 audit 步驟。請參閱 COMPOSER_NO_AUDIT
  • --audit-format: 稽核輸出格式。必須為「table」、「plain」、「json」或「summary」(預設)。
  • --ignore-platform-reqs: 忽略所有平台需求(phphhvmlib-*ext-*),並在本地電腦不滿足這些需求的情況下強制安裝。另請參閱 platform 組態選項。
  • --ignore-platform-req:忽略特定的平台 requirement(phphhvmlib-*ext-*)並強制安裝,即使本地機器不符合 requirement。可以使用萬用字元忽略多個 requirement。
  • --ask:要求使用者提供新專案的目標目錄。

dump-autoload / dumpautoload#

如果您需要因為例如在 classmap 套件中的新類別,而更新自動載入器,您可以使用 dump-autoload 這麼做,而且不必經過安裝或更新。

此外,它可以傾印一個最佳化的自動載入器,它會將 PSR-0/4 套件轉換為 classmap 套件,以獲得效能方面的考量。在具有許多類別的大型應用程式中,自動載入器可能會佔用每次要求的重大部份時間。對所有事物使用 classmap 在開發時較不方便,但使用此選項,您仍然可以為了方便使用 PSR-0/4,並為了效能使用 classmap。

選項

  • --optimize (-o):將 PSR-0/4 自動載入轉換為 classmap,以取得更快速的自動載入器。這特別建議用於生產,但執行可能需要一點時間,所以當前預設並未這麼做。
  • --classmap-authoritative (-a):僅從 classmap 自動載入類別。會自動啟用 --optimize
  • --apcu:使用 APCu 快取已找到/未找到的類別。
  • --apcu-prefix:針對 APCu 自動載入快取使用自訂字首。會自動啟用 --apcu
  • --no-dev:停用 autoload-dev 規則。Composer 預設會根據最後一個 installupdate --no-dev 狀態自動推斷這一點。
  • --dev:啟用 autoload-dev 規則。Composer 預設會根據最後一個 installupdate --no-dev 狀態自動推斷這一點。
  • --ignore-platform-reqs:忽略所有 phphhvmlib-*ext-* 需求,並略過它們的 平台核對。另請參閱 platform 設定選項。
  • --ignore-platform-req:忽略特定平台需求 (phphhvmlib-*ext-*),並略過它的 平台核對。可透過萬用字元忽略多個需求。
  • --strict-psr:如果存在 PSR-4 或 PSR-0 對應錯誤,傳回失敗退出代碼 (1)。需要 --optimize 才能運作。

清除快取 / clearcache / cc#

刪除 Composer 快取目錄的所有內容。

選項

  • --gc:僅執行垃圾收集,而不是完整清除快取

授權#

列出每個已安裝套件的名稱、版本和授權。使用 --format=json 取得機器可讀取的輸出。

選項

  • --format:輸出的格式:文字、json 或摘要 (預設為「文字」)
  • --no-dev:從輸出中移除開發依賴項

執行腳本 / run#

選項

  • --timeout:設定腳本逾時時間(秒數),或設為 0 表示沒有逾時。
  • --dev:設定開發模式。
  • --no-dev:停用開發模式。
  • --list (-l):列出使用者定義腳本。

若要手動執行 腳本,可以使用此命令,提供給它腳本名稱和任何所需的引數(如果需要)。

exec#

執行供應商二進位檔/腳本。您可以執行任何命令,這將確保在執行命令前,Composer bin-dir 會推送到您的 PATH 上。

選項

  • --list (-l):列出可用的 Composer 二進位檔。

診斷#

如果您認為自己發現一個錯誤,或是某些狀況有些奇怪,您也許想要執行 diagnose 命令,針對許多常見問題執行自動核對。

php composer.phar diagnose

封存#

此指令用於為特定版本中的給定套件產生壓縮檔/tar 檔案。它也可以用來在不排除/忽略檔案的情況下,將您的整個專案封存起來。

php composer.phar archive vendor/package 2.0.21 --format=zip

選項

  • --format (-f): 結果檔案的格式:tar、tar.gz、tar.bz2 或 zip(預設:"tar")。
  • --dir: 將檔案寫入此目錄(預設:".")。
  • --file: 以給定的檔名寫入檔案。

稽核檢查#

此指令用於稽核檢查您已安裝的套件,以找出潛在的安全問題。它會依據 Packagist.org API 檢查並列出安全弱點公告。

稽核檢查指令會傳回找到的弱點數量。0 表示成功,反之則高達 255

php composer.phar audit

選項

  • --no-dev: 禁用需要開發套件的稽核檢查。
  • --format (-f): 稽核檢查輸出的格式。必須是 "table"(預設)、"plain"、"json" 或 "summary"。
  • --locked: 稽核檢查鎖定檔案中的套件,而不論供應商目錄中目前有哪些套件。

說明#

若要取得關於特定指令的更多資訊,您可以使用 help

php composer.phar help install

指令列自動完成#

指令列自動完成功能可以透過遵循 此網頁 上的說明來啟用。

環境變數#

您可以設定多個環境變數來覆寫某些設定。建議您儘可能在 composer.jsonconfig 區段中指定這些設定。值得注意的是,環境變數始終會優先於 composer.json 中指定的數值。

COMPOSER#

透過設定 COMPOSER 環境變數,可以讓 composer.json 檔案名稱改為其他名稱。

例如

COMPOSER=composer-other.json php composer.phar install

產生的鎖定檔案將使用相同的名稱:在此範例中為 composer-other.lock

COMPOSER_ALLOW_SUPERUSER#

若設為 1,此環境變數會停用關於以 root/super 使用者身分執行指令的警告。它也會停用 sudo 會話的自動清除,所以您真的應該僅在您始終以 super 使用者身分(例如在 docker 容器中)使用 Composer 時才設定這個參數。

COMPOSER_ALLOW_XDEBUG#

若設為 1,此環境變數允許在啟用 Xdebug 擴充套件時執行 Composer,而不必在沒有啟用 Xdebug 擴充套件的情況下重新啟動 PHP。

COMPOSER_AUTH#

COMPOSER_AUTH 變數允許您以環境變數設定身分驗證。該變數的內容應為 JSON 格式的物件,其中包含 http-basic、github-oauth、bitbucket-oauth… 物件(視需要而定),並遵循 config 的規範

COMPOSER_BIN_DIR#

透過設定這個選項,您可以將bin (供應商二進制檔案) 目錄變更為vendor/bin以外的其他目錄。

COMPOSER_CACHE_DIR#

COMPOSER_CACHE_DIR 變數讓您可以變更 Composer 快取目錄,這目錄也可透過 cache-dir 選項設定。

在 Windows 下,預設指向 C:\Users\<user>\AppData\Local\Composer (或 %LOCALAPPDATA%/Composer)。在遵循 XDG 基本目錄規格 的 *nix 系統上,指向 $XDG_CACHE_HOME/composer。在其他 *nix 系統和 macOS 上,指向 $COMPOSER_HOME/cache

COMPOSER_CAFILE#

透過設定這個環境變數,您可以設定要使用在 SSL/TLS 對等驗證中的憑證套件檔案路徑。

COMPOSER_DISABLE_XDEBUG_WARN#

如果設為 1,當 Composer 使用啟用的 Xdebug 擴充功能執行時,這項環境會抑制警告。

COMPOSER_DISCARD_CHANGES#

這個環境變數控制了 discard-changes 設定選項。

COMPOSER_FUND#

如果設為 0,這項環境會在安裝時抑制資金通知。

COMPOSER_HOME#

COMPOSER_HOME 變數讓您可以變更 Composer 主目錄。這是一個隱藏的、全域的 (機器上的每位使用者) 目錄,在所有專案之間共享。

使用 composer config --global home 可查看主目錄的位置。

在 Windows 下,預設指向 C:\Users\<user>\AppData\Roaming\Composer 而在 macOS 下,指向 /Users/<user>/.composer。在遵循 XDG 基本目錄規格 的 *nix 系統上,指向 $XDG_CONFIG_HOME/composer。在其他 *nix 系統上,指向 /home/<user>/.composer

COMPOSER_HOME/config.json#

您可以在 COMPOSER_HOME 指定的位置中放入一個 config.json 檔案。執行 installupdate 指令時,Composer 會將這個設定與專案的 composer.json 部分合併 (僅 configrepositories 鍵)。

這個檔案讓您可以為使用者的專案設定 儲存庫設定

如果全域設定符合本機設定,專案的 composer.json 中的本機設定總是优先被使用。

COMPOSER_HTACCESS_PROTECT#

預設為 1。如果設為 0,Composer 將不會在 Composer 主程式、快取和資料目錄中建立 .htaccess 檔案。

COMPOSER_MEMORY_LIMIT#

如果已設定,值將用作 PHP 的 memory_limit。

COMPOSER_MIRROR_PATH_REPOS#

如果設為 1,這個環境會將預設路徑儲存庫策略從 symlink 更改為 mirror。由於這是預設策略,因此仍然可以被儲存庫選項覆寫。

COMPOSER_NO_INTERACTION#

如果設為 1,此環境變數將使 Composer 以您傳遞 --no-interaction 旗標給每個指令的方式運作。這可以在建立盒/CI 上設定。

COMPOSER_PROCESS_TIMEOUT#

此環境變數控制 Composer 等待指令(例如 git 指令)執行完成的時間。預設值為 300 秒(5 分鐘)。

COMPOSER_ROOT_VERSION#

透過設定此變數,您可以指定根套件的版本,如果無法從 VCS 資訊猜測,且也不存在於 composer.json 中。

COMPOSER_VENDOR_DIR#

透過設定此變數,您可以讓 Composer 將相依項安裝至 vendor 以外的目錄。

COMPOSER_RUNTIME_ENV#

此功能讓您提示 Composer 在哪個環境中執行,有助於 Composer 解決某些環境特有的問題。目前僅支援 virtualbox 值,這樣可啟用某些簡短的 sleep() 呼叫,以在嘗試讀取檔案之前,等待檔案系統正確寫入檔案。如果您使用 Vagrant 或 VirtualBox,並在安裝過程中遇到檔案未找到,即使檔案應該存在的問題,則可以設定環境變數。

http_proxy 或 HTTP_PROXY#

HTTP_PROXY_REQUEST_FULLURI#

HTTPS_PROXY_REQUEST_FULLURI#

no_proxy 或 NO_PROXY#

請參閱 Proxy 文件,以取得如何使用 Proxy 環境變數的更多詳細資訊。

COMPOSER_AUDIT_ABANDONED#

設為 ignorereportfail 以覆寫 audit.abandoned 設定選項。

COMPOSER_MAX_PARALLEL_HTTP#

設為整數以設定可以並行下載多少個檔案。預設值為 12,且必須介於 1 到 50 之間。如果您的 Proxy 在並存方面有問題,您可能會想降低此值。增加此值通常不會導致效能提升。

COMPOSER_IPRESOLVE#

設為 46 以強制使用 IPv4 或 IPv6 DNS 解析。這只有在針對下載使用 curl 附加元件時才會生效。

COMPOSER_SELF_UPDATE_TARGET#

如果設定,這會讓 self-update 指令將新的 Composer phar 檔案寫入該路徑中,而不是覆寫本身。對於在唯讀檔案系統上更新 Composer 相當有用。

COMPOSER_DISABLE_NETWORK#

如果設為1,則停用網路存取(盡力而為)。這可用於除錯或在連線不佳的飛機或太空船上執行 Composer。

如果設為prime,GitHub VCS 儲存庫將會初始化快取,這樣就能用1完全離線使用了。

COMPOSER_DEBUG_EVENTS#

如果設為1,則會輸出關於已派送事件的資訊,它對於外掛程式作者來識別何時完全啟動非常有用。

COMPOSER_NO_AUDIT#

如果設為1,則相當於傳遞--no-audit選項給requireupdateremovecreate-project指令。

COMPOSER_NO_DEV#

如果設為1,則相當於傳遞--update-no-dev選項給require--no-dev選項給installupdate。你可以透過設定COMPOSER_NO_DEV=0來覆寫單一指令。

COMPOSER_PREFER_STABLE#

如果設為1,則相當於傳遞--prefer-stable選項給updaterequire

COMPOSER_PREFER_LOWEST#

如果設為1,則相當於傳遞--prefer-lowest選項給updaterequire

COMPOSER_MINIMAL_CHANGES#

如果設為1,則相當於傳遞--minimal-changes選項給updaterequireremove

COMPOSER_IGNORE_PLATFORM_REQ 或 COMPOSER_IGNORE_PLATFORM_REQS#

如果將COMPOSER_IGNORE_PLATFORM_REQS設為1,則相當於傳遞--ignore-platform-reqs引數。否則,在COMPOSER_IGNORE_PLATFORM_REQ中指定以逗號分隔的清單,將會忽略那些特定需求。

例如,如果開發工作站永遠不會執行資料庫查詢,則可用此方式來忽略資料庫擴充功能需求。如果你設定COMPOSER_IGNORE_PLATFORM_REQ=ext-oci8,則即使未啟用oci8 PHP 擴充功能,composer 仍會允許安裝套件。

程式庫 | 架構

發現錯字嗎?這份文件中有些什麼問題嗎?複製並編輯它!