PHP

Prev Next

Classic/VPC環境で利用できます。

PHP形式のアクションを作成して多様に活用する方法と、そのユースケースを紹介します。

アクション作成

JavaScriptの NPMのように PHPのパッケージマネージャであるコンポーザ(Composer)を使用して依存関係を管理でき、依存関係ライブラリと一緒にパッケージングしてアクションを作成することもできます。PHPで作成したコードは複数の関数を含めますが、main関数はプログラムのエントリポイントとして宣言される必要があります。この点を考慮して名前と場所を含めて「Hello World」を出力する PHP形式の簡単なサンプルコードの hello.phpは、次の通りです。

<?php
function main(array $args) : array
{
    $name = $args["name"] ?? "World";
    $place = $args["place"] ?? "Naver";
    $greeting = "Hello $name in $place!";
    echo $greeting;
    return ["payload" => $greeting];
} 
?>

上記で作成したコードを使用してコンソールで「hello」という名前のアクションを作成する手順は、次の通りです。

cloudfunctions-exmaple-php_v2_01_ko

依存関係ファイルを一緒にパッケージングしてアクションを作成

コードを作成していると、1つのアクションファイル以外に依存ファイルを一緒にパッケージングする必要がある場合があります。このような場合、関連するファイルを1つのファイルに圧縮してパッケージングし、圧縮されたファイルを利用してアクションを作成できます。
デフォルト値として使用される main(args)関数のように、アクション実行時のエントリポイントのロールであるメイン関数は、index.phpファイルの中に必ず定義されている必要があります。
例えば、メインアクションで使用される複数の関数が作成された helper.phpファイルと一緒にパッケージングしてアクションを作成したい場合、以下のコマンドを使用してアクションに関連する複数のファイルを helloPHP.zipに圧縮します。

zip -r helloPHP.zip index.php hello.php

その後、作成された圧縮ファイルを使用してアクションを作成できます。

コンポーザ(Composer)の依存関係をパッケージングしてアクションを作成

PHPアクションコードを作成する時、依存関係管理ツールである composerを使用して色んなライブラリを使用する場合があります。このような場合、基本的にパッケージングする方法と同じように vendorに含まれる依存モジュールまで一緒にパッケージングすることで、アクションを作成して実行することができます。また、メイン関数が index.phpファイルの中に定義されている必要があります。
fzaninotto/fakerライブラリを追加し、実際のアドレスに似た fakeデータを作成するアクションを作成するユースケースは、次の通りです。

  1. composerコマンドでライブラリをインストールします。

    $ composer require fzaninotto/faker
    
  2. index.phpファイル名で fake addressを返すメイン関数を定義します。

    <?php
    require __DIR__ . '/vendor/autoload.php';
    
    function main(array $args) : array
    {
        $faker = Faker\Factory::create();
        return ["address" => $faker->address];
    } 
    ?>
    
  3. vendorフォルダと index.phpファイルを一緒に圧縮します。

    $ zip -r composerPHP.zip vendor index.php
    
  4. 圧縮ファイルをアップロードしてアクションを作成します。