標準の composer.json
ファイル内で PHP の依存関係を宣言できます。例:
{
"require": {
"google/cloud": "^0.72"
}
}
App Engine では Linux 対応の PHP パッケージを使用できます。ランタイムは、アプリケーションの起動前にアプリケーションのソース ディレクトリで composer.json
ファイルを探し、composer
を使用して依存関係をインストールします。
このランタイムでサポートされている PHP のバージョンについては、PHP ランタイムをご覧ください。
ローカルにインストールして実行する
依存関係をローカルにインストールするには、Composer を使用します。
composer install
依存関係を現在のバージョンに固定するには、composer.lock
ファイルをアプリケーションに commit します。
選択したウェブサーバーを使用してアプリケーションをテストできます。App Engine フレキシブル環境では、本番環境の NGINX を使用します。PHP の組み込みウェブサーバーを使用すると、アプリケーションをすぐに実行できます。
ウェブ フレームワークのインストール
デフォルトでは、NGINX が index.php
経由ですべてのリクエストを処理するように構成されています。フレームワークは必須ではありませんが、使用することをおすすめします。App Engine フレキシブル環境では、次のようなウェブ フレームワークを使用できます。
特定のウェブ フレームワークを使用するには、次の composer.json
に追加します。
{
"require": {
"symfony/symfony": " ^3.0"
}
}
Cloud クライアント ライブラリのインストール
Google Cloud サービスにアクセスするためのクライアント ライブラリである PHP 用 Google Cloud クライアント ライブラリを使用すると、記述する必要のあるボイラープレート コードが減ります。このライブラリは、高レベルの抽象化によってわかりやすい API を提供します。また、PHP 固有のスタイルに従い、標準ライブラリとうまく連携し、コードベースとの緊密な統合を実現します。結果、気になる重要なコードの作成により多くの時間を割くことができるようになります。
ライブラリをローカルにインストールするには:
composer require google/cloud
Google Cloud CLI を使用して、認証をローカルで処理できます。ローカル アプリケーションで一時的に独自のユーザー認証情報を使用して API にアクセスするには、次のコマンドを実行します。
gcloud auth application-default login
PHP 用 Cloud クライアント ライブラリを構成して認証を自動的に処理する際の詳細については、クライアント ライブラリを使用してクラウド サービスへの認証を行うをご覧ください。
非公開リポジトリの使用
非公開レポジトリのライブラリを使用するには、次のタスクを完了する必要があります。
- リポジトリを構成します。
- 非公開リポジトリにアクセスするための Secret を
composer
に付与します。
次の例は、GitHub の非公開リポジトリにアクセスする方法を示しています。
vcs
タイプを使用してcomposer.json
内でリポジトリを構成します。"repositories": [ { "type": "vcs", "url": "https://github.com/username/private_package" } ]
プロジェクトのルート ディレクトリに
auth.json
という名前のファイルを作成します。{ "github-oauth": { "github.com": "<your-github-auth-token>" } }
GitHub の管理 UI から GitHub 認証トークンを取得できます。
次の例は、Bitbucket の非公開リポジトリにアクセスする方法を示しています。
vcs
タイプを使用してcomposer.json
内でリポジトリを構成します。"repositories": [ { "type": "vcs", "url": "https://bitbucket.org/username/private_git" } ]
プロジェクトのルート ディレクトリに
auth.json
という名前のファイルを作成します。{ "bitbucket-oauth": { "bitbucket.org": { "consumer-key": "<your-oauth-consumer-key>", "consumer-secret": "<your-oauth-consumer-secret>" } } }