PHP 執行階段

Cloud Run 函式會在環境中執行,該環境包含作業系統版本、附加套件、語言支援,以及支援和叫用函式的 PHP Functions Framework 程式庫。這個環境會以語言版本識別,稱為執行階段 ID。

函式準備

您可以直接從 Google Cloud 控制台準備函式,也可以在本機撰寫函式並上傳。如要準備本機電腦以進行 PHP 開發作業,請參閱「在 Google Cloud上使用 PHP」。

支援的 PHP 執行階段和基本映像檔

執行階段 執行階段 ID 堆疊 執行階段基礎映像檔
PHP 8.4 php84 google-22-full (預設) google-22-full/php84
PHP 8.3 php83 google-22-full (預設) google-22-full/php83
PHP 8.2 php82 google-22-full (預設) google-22-full/php82
PHP 8.1 php81 google-18-full google-18-full/php81
PHP 7.4 php74 google-18-full google-18-full/php74

選取執行階段

您可以在部署期間,針對函式選取其中一個支援的 PHP 執行階段。

您可以使用 Google Cloud 控制台或 gcloud CLI 選取執行階段版本。按一下分頁標籤,瞭解如何使用自選工具:

gcloud

部署函式時,請使用 --base-image 標記為函式指定 PHP 基礎映像檔。例如:

gcloud run deploy FUNCTION \
    --source . \
    --function FUNCTION_ENTRYPOINT \
    --base-image php84

取代:

  • FUNCTION 改為您要部署的函式名稱。您可以完全省略這個參數,但這樣系統會提示您輸入名稱。

  • FUNCTION_ENTRYPOINT,並在原始碼中輸入函式的進入點。這是 Cloud Run 在函式執行時執行的程式碼。這個旗標的值必須是來源程式碼中存在的函式名稱或完整類別名稱。

如需使用 gcloud CLI 部署函式的詳細操作說明,請參閱「在 Cloud Run 中部署函式」。

主控台

在 Google Cloud 控制台中建立或更新 Cloud Run 函式時,您可以選取執行階段版本。如需部署函式的詳細操作說明,請參閱「在 Cloud Run 中部署函式」。

如要在建立函式時,透過 Google Cloud 控制台選取執行階段,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 Cloud Run 頁面:

    前往 Cloud Run

  2. 按一下「編寫函式」

  3. 在「執行階段」清單中,選取 PHP 執行階段版本。

  4. 按一下「建立」,然後等待 Cloud Run 使用預留位置修訂版本建立服務。

  5. 主控台會將您重新導向至「來源」分頁,您可以在這裡查看函式的原始碼。按一下「儲存並重新部署」

如需函式部署後更新執行階段版本的詳細操作說明,請參閱「重新部署新的原始碼」。

原始碼結構

如要讓 Cloud Run 函式找到函式的定義,原始碼必須遵循特定結構。詳情請參閱「編寫 Cloud Run functions」。

PHP 設定

您可以在函式的根目錄中,使用 php.ini 檔案設定 PHP 函式。您可以使用 phpinfo() 函式查看現有的 PHP 設定,如下列程式碼範例所示:


use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

指定依附元件

PHP 會使用 Composer 管理依附元件。如要為函式指定依附元件,請將依附元件新增至名為 composer.json 的專案檔案。

Cloud Run functions PHP 執行階段需要將 Functions Framework 設為明確的依附元件。如要將 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/ 目錄,藉此減少部署作業中傳送的檔案數量。