PHP での依存関係を指定する
PHP の依存関係を管理するには、Composer を使用します。
Composer のインストール
Composer をまだインストールしていない場合は、次の手順でインストールします。
任意の場所に Composer をダウンロードします。
ダウンロード完了後、
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 が明示的な依存関係として必要です。Functions Framework を依存関係として追加するには、関数コードが含まれるディレクトリで次のコマンドを実行します(このディレクトリには composer.json ファイルも含まれている必要があります)。
composer require google/cloud-functions-framework
これにより、Functions Framework が composer.json に追加され、パッケージが vendor/ ディレクトリにインストールされます。
autoload.php ファイル
autoload.php は、vendor/ ディレクトリに含まれるファイルの 1 つです。
PHP スクリプトの先頭に次の行を追加して autoload.php ファイルを require すると、関数の他の依存関係が自動的に require されます。
require_once __DIR__ . '/vendor/autoload.php';
デフォルトでは、デプロイ時に送信されるファイル数を減らすために、生成される .gcloudignore ファイル内で vendor/ ディレクトリは無視されます。
依存関係の更新
関数の依存関係と composer.lock ファイルを更新するには、update コマンドを使用します。
composer update
これにより、プロジェクトのすべての依存関係が解決され、正確なバージョンが composer.lock に書き込まれます。