言語ガイド: PHP
ここでは、PHP サンプル アプリケーションの .circleci/config.yml
ファイルを作成する方法を詳細に説明します。
- クイックスタート: デモ用の PHP Laravel リファレンス プロジェクト
- CircleCI のビルド済み Docker イメージ
- PHP のデモ プロジェクトのビルド
- 設定ファイルの例
- 設定ファイルの詳細
クイックスタート: デモ用の PHP Laravel リファレンス プロジェクト
CircleCI 2.0 での PHP のビルド方法を示すために、PHP Laravel リファレンス プロジェクトが用意されています。
CircleCI での PHP のビルド方法を示すために、PHP Laravel リファレンス プロジェクトが用意されています。
このプロジェクトには、コメント付きの CircleCI 設定ファイル .circleci/config.yml
が含まれます。 このファイルは、PHP プロジェクトで CircleCI を使用するためのベスト プラクティスを示しています。
CircleCI のビルド済み Docker イメージ
セカンダリ「サービス」コンテナとして使用するデータベース イメージも提供されています。
CircleCI のビルド済みイメージを使用することをお勧めします。 このイメージには、CI 環境で役立つツールがプリインストールされています。 Docker Hub から必要な PHP バージョンを選択できます。 デモ プロジェクトでは、公式 CircleCI イメージを使用しています。
以下に、デモ プロジェクトのコメント付き .circleci/config.yml
ファイルを示します。
PHP のデモ プロジェクトのビルド
CircleCI を初めて使用する際は、プロジェクトをご自身でビルドしてみることをお勧めします。 以下に、ユーザー自身のアカウントを使用してデモ プロジェクトをビルドする方法を示します。
- GitHub 上のプロジェクトをお使いのアカウントにフォークします。
- CircleCI アプリケーションのプロジェクトダッシュボードに行き、フォークしたプロジェクトの隣にある[Follow Project (プロジェクトをフォローする)]ボタンをクリックします。
- 変更を加えるには、
.circleci/config.yml
ファイルを編集してコミットします。 コミットを GitHub にプッシュすると、CircleCI がそのプロジェクトをビルドしてテストします。
設定ファイルの例
以下に、デモ プロジェクトのコメント付き .circleci/config.yml
ファイルを示します。
version: 2.1
orbs:
browser-tools: circleci/browser-tools@1.2
jobs: # a collection of steps
build: # runs not using Workflows must have a `build` job as entry point
docker: # run the steps with Docker
- image: cimg/php:8.0.14-browsers # ...with this image as the primary container; this is where all `steps` will run
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
working_directory: ~/laravel # directory where steps will run
steps: # a set of executable commands
- checkout # special step to check out source code to working directory
- run: sudo pecl install pcov
- run: sudo composer selfupdate
- restore_cache: # special step to restore the dependency cache if `composer.lock` does not change
keys:
- composer-v1-{{ checksum "composer.lock" }}
# fallback to using the latest cache if no exact match is found (See https://circleci.com/docs/2.0/caching/)
- composer-v1-
- run: composer install -n --prefer-dist
- save_cache: # special step to save the dependency cache with the `composer.lock` cache key template
key: composer-v1-{{ checksum "composer.lock" }}
paths:
- vendor
- restore_cache: # special step to restore the dependency cache if `package-lock.json` does not change
keys:
- node-v1-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found (See https://circleci.com/docs/2.0/caching/)
- node-v1-
- run: yarn install
- save_cache: # special step to save the dependency cache with the `package-lock.json` cache key template
key: node-v1-{{ checksum "package-lock.json" }}
paths:
- node_modules
- run: touch storage/testing.sqlite
- run: php artisan migrate --env=testing --database=sqlite_testing --force
- run: ./vendor/bin/codecept build
- run: ./vendor/bin/codecept run
# See https://circleci.com/docs/2.0/deployment-integrations/ for deploy examples
設定ファイルの詳細
config.yml
は必ず version
キーから始めます。 このキーは、互換性を損なう変更に関する警告を表示するために使用します。
version: 2
実行処理は 1 つ以上のジョブで構成されます。 この実行では ワークフローを使用しないため、build
ジョブを記述する必要があります。
working_directory
キーを使用して、ジョブの steps
を実行する場所を指定します。 working_directory
のデフォルトの値は ~/project
です (project
は文字列リテラル)。
ジョブの各ステップは Executor という名前の仮想環境で実行されます。
この例では docker
Executor を使用して、カスタム Docker イメージを指定しています。 ここでは、ブラウザー ツールを含む CircleCI 提供の PHP Docker イメージを使用します。
version: 2.1
orbs:
browser-tools: circleci/browser-tools@1.2
jobs:
build:
docker:
- image: cimg/php:8.0.14-browsers
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
working_directory: ~/laravel
次に、steps:
キーの下で、一連のコマンドを実行します。 以下のように、依存関係の管理に使用できる PHP ツールをインストールします。
steps:
- checkout
- run: sudo apt install -y libsqlite3-dev zlib1g-dev
- run: sudo docker-php-ext-install zip
- run: sudo composer self-update
設定ファイルのその後のステップはすべて、依存関係の管理とキャッシュに関連しています。 このサンプル プロジェクトでは、PHP の依存関係と JavaScript の依存関係の両方をキャッシュします。
save_cache
ステップを使用して、いくつかのファイルまたはディレクトリをキャッシュします。 この例のキャッシュ キーは、composer.lock
ファイルのチェックサムに基づいていますが、より汎用的なキャッシュ キーを使用するようにフォールバックします。
restore_cache
ステップを使用して、キャッシュされたファイルまたはディレクトリを復元します。
<br /> - restore_cache:
keys:
- composer-v1-{{ checksum "composer.lock" }}
- composer-v1-
- run: composer install -n --prefer-dist
- save_cache:
key: composer-v1-{{ checksum "composer.lock" }}
paths:
- vendor
- restore_cache:
keys:
- node-v1-{{ checksum "package-lock.json" }}
- node-v1-
- run: yarn install
- save_cache:
key: node-v1-{{ checksum "package-lock.json" }}
paths:
- node_modules
最後に、Sqlite テスト データベースを準備し、移行を実行し、テストを実行します。
- run: touch storage/testing.sqlite
- run: php artisan migrate --env=testing --database=sqlite_testing --force
- run: ./vendor/bin/codecept build
- run: ./vendor/bin/codecept run
完了です。 これで PHP アプリケーション用に CircleCI をセットアップできました。 CircleCI でビルドを行うとどのように表示されるかについては、プロジェクトのジョブ ページを参照してください。
関連項目
-
デプロイ ターゲットの構成例については、「デプロイの構成」を参照してください。
-
その他のパブリック PHP プロジェクトの構成例については、「CircleCI 設定ファイルのサンプル」を参照してください。
-
CircleCI を初めて使用する場合は、プロジェクトの詳細に目を通すことをお勧めします。 ここでは、Python と Flask を使用した設定を例に詳しく解説しています。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか?
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、サポートサイトから、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。

CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.