如何以程式化方式安裝 Composer?#

正如下載頁面中所述,安裝程式腳本包含一個在安裝程式變更時會變更的校驗和,因此不應長期依賴於它。

另一個選擇是使用這個只能與 UNIX 程式工具一起運作的腳本

#!/bin/sh

EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
php -r "copy('https://composer.dev.org.tw/installer', 'composer-setup.php');"
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"

if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
then
    >&2 echo 'ERROR: Invalid installer checksum'
    rm composer-setup.php
    exit 1
fi

php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
exit $RESULT

該腳本在執行失敗時會傳回 1,執行成功時會傳回 0,而且在無事發生時不會出聲。

或者,如果你想依賴於安裝程式的確切副本,你可以從 GitHub 的歷史記錄中擷取特定版本。只要你信任 GitHub 伺服器,提交雜湊值就應該足夠提供其唯一性和真實性。例如

wget https://raw.githubusercontent.com/composer/getcomposer.org/76a7060ccb93902cd7576b67264ad91c8a2700e2/web/installer -O - -q | php -- --quiet

你可以將提交雜湊值取代為 https://github.com/composer/getcomposer.org/commits/main 中最後一個提交雜湊值。

發現錯別字?這篇文件中有些地方錯誤?進行分支和編輯