以 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 functions 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