在 PHP 中指定依附元件

您可以使用 Composer 管理 PHP 中的依附元件。

安裝 Composer

如果您尚未安裝 Composer,請按照下列步驟操作:

  1. 將 Composer 下載至所需位置

  2. 下載完成後,請將 composer.phar 檔案移至系統路徑中的目錄,例如:

    mv composer.phar /usr/local/bin/composer
    

建立 composer.json 檔案

composer.json 檔案會列出函式的依附元件。您可以手動建立,也可以執行下列指令:

composer init

執行這項指令時,系統會以互動方式要求您填寫欄位,並提供一些智慧預設值。

宣告依附元件

如要宣告依附元件,請在函式程式碼目錄中新增含有依附元件的 composer.json 檔案。在本範例中,我們需要使用 Functions Framework,並新增 start 指令碼:

{
    "require": {
        "php": ">= 8.1",
        "google/cloud-functions-framework": "^1.1"
    },
    "scripts": {
        "start": [
           "Composer\\Config::disableProcessTimeout",
           "FUNCTION_TARGET=helloHttp php -S localhost:${PORT:-8080} vendor/google/cloud-functions-framework/router.php"
        ]
    }
}

請注意,如果 Composer 可以使用快取結果,composer.json 檔案中定義的指令碼就不會執行。

將 Functions Framework 新增為依附元件

Cloud Run 函式 PHP 執行階段要求函式架構必須是明確的依附元件。如要將 Functions Framework 新增為依附元件,請在包含函式程式碼的目錄中執行下列指令 (這個目錄也必須包含 composer.json 檔案):

composer require google/cloud-functions-framework

這會將 Functions Framework 新增至 composer.json,並在 vendor/ 目錄中安裝套件。

autoload.php 檔案

vendor/ 目錄中包含的其中一個檔案是 autoload.php

將以下這行加入 PHP 指令碼頂端,以便要求 autoload.php 檔案,該檔案會自動 require 函式的其他依附元件:

require_once __DIR__ . '/vendor/autoload.php';

根據預設,系統會在產生的 .gcloudignore 檔案中忽略 vendor/ 目錄,藉此減少部署作業中傳送的檔案數量。

更新依附元件

如要更新函式的依附元件和 composer.lock 檔案,請使用 update 指令

composer update

這會解析專案的所有依附元件,並將確切版本寫入 composer.lock