依存関係の指定

新しいバージョンのアプリケーションをデプロイすると、Composer が自動的に実行されます。autoload.php ファイルを要求するには、PHP スクリプトの先頭に次の行を追加します。

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

Composer はパッケージをアプリの vendor/ ディレクトリに追加し、ここで autoload.php ファイルが生成されます。Composer がインストールしたクラスは Composer オートローダーによって自動的に読み込まれるので、ファイルごとに require ステートメントを指定する必要はありません。

デフォルトでは、デプロイ時に送信されるファイル数を減らす目的で、生成される .gcloudignore ファイル内で vendor/ ディレクトリが無視されます。

標準の composer.json ファイル内で PHP の依存関係を宣言できます。次に例を示します。

{
    "require": {
        "google/cloud": "^0.72"
    }
}

App Engine では Linux 対応の PHP パッケージを使用できます。ランタイムは、アプリケーションの起動前にアプリケーションのソース ディレクトリで composer.json ファイルを探し、composer を使用して依存関係をインストールします。

Composer がキャッシュに保存された結果を使用できるときには、composer.json ファイルで定義したスクリプトは実行されません。

デフォルトでは、App Engine は取得した依存関係をキャッシュに保存し、ビルド時間を短縮します。キャッシュに保存されていないバージョンの依存関係をインストールするには、次のコマンドを使用します。

gcloud app deploy --no-cache

ローカルにインストールして実行する

次のように composer を使用して依存関係をローカルにインストールします。

composer install
依存関係を現在のバージョンに固定するには、composer.lock ファイルをアプリケーションに commit します。

選択したウェブサーバーを使用してアプリケーションをテストできます。PHP の組み込みウェブサーバーを使用すると、アプリケーションをすぐに実行できます。

ウェブ フレームワークのインストール

デフォルトでは、App Engine は public/index.php または index.php ファイルを通じてすべてのリクエストを処理します。フレームワークは必須ではありませんが、使用することをおすすめします。App Engine では以下のような任意のウェブ フレームワークを使用できます。

Cloud クライアント ライブラリのインストール

Google Cloud サービスにアクセスするためのクライアント ライブラリである PHP 用 Google Cloud クライアント ライブラリを使用すると、記述する必要のあるボイラープレート コードが減ります。このライブラリは、高レベルの抽象化によってわかりやすい API を提供します。また、PHP 固有のスタイルに従い、標準ライブラリとうまく連携し、コードベースとの緊密な統合を実現します。その結果、重要なコードの作成により多くの時間を割くことができるようになります。

  1. ライブラリをローカルにインストールするには:

    composer require google/cloud
    
  2. Google Cloud CLI を使用して、認証をローカルで処理できます。ローカル アプリケーションで一時的に独自のユーザー認証情報を使って API にアクセスするには、次のコマンドを実行します。

    gcloud auth application-default login
    

    PHP 用 Cloud クライアント ライブラリを構成して認証を自動的に処理する際の詳細については、クライアント ライブラリを使用してクラウド サービスへの認証を行うをご覧ください。

非公開リポジトリの使用

非公開レポジトリのライブラリを使用するには、次のタスクを完了する必要があります。

  • リポジトリを構成します。
  • 非公開リポジトリにアクセスするための Secret を composer に付与します。

次の例は、GitHub の非公開リポジトリにアクセスする方法を示しています。

  1. vcs タイプを使用して composer.json 内でリポジトリを構成します。

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/username/private_package"
        }
    ]
    
  2. プロジェクトのルート ディレクトリに auth.json という名前のファイルを作成します。

    {
        "github-oauth": {
            "github.com": "<your-github-auth-token>"
        }
    }
    

GitHub の管理 UI から GitHub 認証トークンを取得できます。

次の例は、Bitbucket の非公開リポジトリにアクセスする方法を示しています。

  1. vcs タイプを使用して composer.json 内でリポジトリを構成します。

    "repositories": [
        {
            "type": "vcs",
            "url":  "https://bitbucket.org/username/private_git"
        }
    ]
    
  2. プロジェクトのルート ディレクトリに auth.json という名前のファイルを作成します。

    {
        "bitbucket-oauth": {
            "bitbucket.org": {
                "consumer-key": "<your-oauth-consumer-key>",
                "consumer-secret": "<your-oauth-consumer-secret>"
            }
        }
    }