必要な拡張機能、php.ini 設定、コード カバレッジ サポート、GitHub Actions のコンポーザーなどのさまざまなツールを使用して PHP をセットアップします。このアクションにより、アプリケーションのテストに必要な PHP 環境をセットアップするためのクロスプラットフォーム インターフェイスが提供されます。これの使用方法については、「使用法」セクションと例を参照してください。
GitHub-hosted
とself-hosted
ランナーの両方が、次の OS/プラットフォーム上のsetup-php
でサポートされています。
仮想環境 | YAML ワークフロー ラベル | プリインストールされたPHP |
---|---|---|
Ubuntu 24.04 | ubuntu-24.04 | PHP 8.3 |
Ubuntu 22.04 | ubuntu-latest またはubuntu-22.04 | PHP 8.1 |
Ubuntu 20.04 | ubuntu-20.04 | PHP 7.4 からPHP 8.3 へ |
Windowsサーバー2022 | windows-latest またはwindows-2022 | PHP 8.3 |
Windowsサーバー2019 | windows-2019 | PHP 8.3 |
macOS セコイア 15.x | macos-15 | - |
macOS ソノマ 14.x | macos-latest またはmacos-14 | - |
macOS ベンチュラ 13.x | macos-13 | PHP 8.3 |
ホストOS/仮想環境 | YAML ワークフロー ラベル |
---|---|
Ubuntu 24.04 | self-hosted またはLinux |
Ubuntu 22.04 | self-hosted またはLinux |
Ubuntu 20.04 | self-hosted またはLinux |
デビアン 12 | self-hosted またはLinux |
デビアン 11 | self-hosted またはLinux |
Windows 7 以降 | self-hosted またはWindows |
Windows Server 2012 R2 以降 | self-hosted またはWindows |
macOS セコイア 15.x x86_64/arm64 | self-hosted またはmacOS |
macOS Sonoma 14.x x86_64/arm64 | self-hosted またはmacOS |
macOS ベンチュラ 13.x x86_64/arm64 | self-hosted またはmacOS |
setup-php
そのバージョンに切り替えます。そうでない場合は、PHP バージョンをインストールします。 サポートされているすべての OS/プラットフォームで、次の PHP バージョンをランナーごとにセットアップできます。
PHPのバージョン | 安定性 | リリースサポート | ランナーサポート |
---|---|---|---|
5.3 | Stable | End of life | GitHub-hosted |
5.4 | Stable | End of life | GitHub-hosted |
5.5 | Stable | End of life | GitHub-hosted |
5.6 | Stable | End of life | GitHub-hosted 、 self-hosted |
7.0 | Stable | End of life | GitHub-hosted 、 self-hosted |
7.1 | Stable | End of life | GitHub-hosted 、 self-hosted |
7.2 | Stable | End of life | GitHub-hosted 、 self-hosted |
7.3 | Stable | End of life | GitHub-hosted 、 self-hosted |
7.4 | Stable | End of life | GitHub-hosted 、 self-hosted |
8.0 | Stable | End of life | GitHub-hosted 、 self-hosted |
8.1 | Stable | Security fixes only | GitHub-hosted 、 self-hosted |
8.2 | Stable | Active | GitHub-hosted 、 self-hosted |
8.3 | Stable | Active | GitHub-hosted 、 self-hosted |
8.4 | Stable | Active | GitHub-hosted 、 self-hosted |
8.5 | Nightly | In development | GitHub-hosted 、 self-hosted |
注:
php-version
入力で8.5
指定すると、 PHP 8.5.0-dev
の夜間ビルドがインストールされます。詳細については、夜間ビルドのセットアップを参照してください。PHP 8.0
以降で JIT を使用するには、「JIT 構成」セクションを参照してください。 PHP 拡張機能は、 extensions
入力を使用して設定できます。 CSV 形式のstring
を受け入れます。
Ubuntu
では、パッケージとして利用可能な拡張機能、 PECL
または git リポジトリで利用可能な拡張機能をセットアップできます。 - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole
Windows
では、 DLL
バイナリを持つPECL
で利用可能な拡張機能をセットアップできます。
macOS
では、 PECL
または git リポジトリで利用可能な拡張機能をセットアップできます。
Ubuntu
およびmacOS
で git リポジトリから拡張機能をコンパイルしてインストールするには、このガイドに従ってください。
指定されている場合、PHP とともにインストールされる拡張機能が有効になります。
PECL
で利用可能な拡張機能の特定のバージョンは、拡張機能の名前の末尾にバージョンを付けることで設定できます。これは、サポートが終了した PHP バージョンをサポートする古いバージョンの拡張機能をインストールする場合に役立ちます。
- name : Setup PHP with specific version of PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 5.4 '
extensions : swoole-1.9.3
PECL
で利用可能なプレリリース バージョンの拡張機能は、拡張機能の名前にその状態 ( alpha
、 beta
、 devel
、またはsnapshot
を接尾辞として付けることでセットアップできます。 - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta
Ubuntu
およびmacOS
で、ライブラリまたはカスタム構成を使用して PECL から拡張機能をコンパイルしてインストールするには、このガイドに従ってください。
共有拡張機能は、先頭に:
を付けることで無効にできます。指定された拡張子に依存するすべての拡張子も無効になります。
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcache
none
指定すると、すべての共有拡張機能を無効にできます。他の拡張子とともにnone
指定されていない場合は、入力の先頭にホイストされます。したがって、最初にすべての共有拡張機能が無効になり、その後、入力内の残りの拡張機能が処理されます。注:これにより、すべてのコアおよびサードパーティの共有拡張機能が無効になるため、それらを必要とする一部のツールが機能しなくなる可能性があります。ツールがベスト エフォート ベースでセットアップされると、必要な拡張機能が再び有効になります。したがって、問題を避けるために、 extensions
入力にnone
追加しなかった後に、ツールに必要な拡張機能を追加することをお勧めします。
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
intl
にICU
バージョンを付けることで、 Ubuntu
ワークフローのPHP 5.6
以降の特定のICU
バージョンで設定できます。 ICU 50.2
以降のバージョンがサポートされています。サポートされている特定のバージョンについては、 ICU builds
を参照してください。 - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1
setup-php
の実行後にデフォルトでロードされる拡張機能は wiki にあります。
これらの拡張機能にはカスタム サポートがあります。
Ubuntu
上のcubrid
とpdo_cubrid
。Ubuntu
およびmacOS
上のevent
、 gearman
、 geos
およびrelay
。blackfire
、 couchbase
、 ioncube
、 oci8
、 pdo_firebird
、 pdo_oci
、 pecl_http
、 phalcon3
、 phalcon4
、 phalcon5
、およびzephir_parser
。デフォルトでは、追加または無効にできない拡張機能はログにエラー メッセージを残し、実行は中断されません。この動作を変更するにはfail-fast
フラグをtrue
に設定します。
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true
これらのツールは、 tools
入力を使用してグローバルに設定できます。 CSV 形式の文字列を受け入れます。
behat
、 blackfire
、 blackfire-player
、 box
、 castor
、 churn
、 codeception
、 composer
、 composer-dependency-analyser
、 composer-normalize
、 composer-prefetcher
、 composer-require-checker
、 composer-unused
、 cs2pr
、 deployer
、 ecs
、 flex
、 grpc_php_plugin
、 infection
、 parallel-lint
、 pecl
、 phan
、 phing
、 phinx
、 phive
、 php-config
、 php-cs-fixer
、 php-scoper
、 phpcbf
、 phpcpd
、 phpcs
、 phpdoc
またはphpDocumentor
、 phpize
、 phplint
、 phpmd
、 phpspec
、 phpstan
、 phpunit
、 phpunit-bridge
、 phpunit-polyfills
、 pint
、 prestissimo
、 protoc
、 psalm
、 rector
、 symfony
またはsymfony-cli
、 vapor
またはvapor-cli
、 wp
またはwp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunit
vendor/package
として指定することで、コンポーザー ツールまたはパッケージをグローバルにセットアップすることもできます。この形式は、 composer
と同じバージョン制約を受け入れます。 - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm
ツールの特定のバージョンを設定するには、 tool:version
の形式で指定します。
バージョンは次の形式にすることができます。
tool:1.2.3
またはtool:1.2.3-beta1
です。tool:1
またはtool:1.x
です。tool:1.2
またはtool:1.2.x
です。メジャーバージョンのみ、またはメジャー. major.minor
形式でバージョンを指定した場合は、入力に一致する最新のパッチバージョンがセットアップされます。
composer
のメジャー バージョンを除き、ツールにmajor
バージョンのみ、またはmajor.minor
形式のバージョンを指定すると、GitHub の API によってレート制限を受ける可能性があります。これを回避するには、 GitHub
OAuth トークンを提供することをお勧めします。これを行うには、 GITHUB_TOKEN
環境変数を設定します。 COMPOSER_TOKEN
環境変数はGITHUB_TOKEN
に代わって非推奨となり、次のメジャー バージョンでは削除される予定です。
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer:3.64, phpunit:11.4
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
composer
の最新の安定バージョンがデフォルトでセットアップされています。メジャー バージョンv1
またはv2
、またはmajor.minor
またはsemver
形式のバージョンを指定することで、必要なcomposer
バージョンをセットアップできます。さらに、コンポーザーのsnapshot
とpreview
指定して、それぞれのリリースを設定することもできます。 - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2
tools: none
を指定してスキップできます。 - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none
Linux および macOS でサポートされているすべての PHP バージョンに対して、ツールpear
、 pecl
、 phpize
およびphp-config
デフォルトで設定されています。
blackfire
cli の最新バージョンは、ツール入力でblackfire
指定するとセットアップされます。 GitHub Actions でblackfire
使用する方法については、公式ドキュメントを参照してください。
ツールの入力でcomposer:v1
も指定されていない限り、ツールprestissimo
とcomposer-prefetcher
スキップされます。 prestissimo
削除し、 composer v2
使用することをお勧めします。
デフォルトでは、正常にセットアップできないcomposer
ツールを除き、エラー メッセージがログに残され、実行は中断されません。この動作を変更するにはfail-fast
フラグをtrue
に設定します。
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : true
注意事項
tools
CI ワークフローでのみ使用されるツールをセットアップするのに便利で、 composer.json
整然とした状態に保ちます。--no-dev
を指定して Composer を実行し、 tools
入力を使用して必要なツールをインストールして、ワークフローを高速化できます。COMPOSER_NO_INTERACTION
は1
に設定され、 COMPOSER_PROCESS_TIMEOUT
は0
に設定されます。実際、これは、スクリプト内の Composer コマンドで--no-interaction
指定する必要がないことを意味します。COMPOSER_NO_AUDIT
は1
に設定されます。したがって、依存関係のセキュリティ脆弱性を監査する場合は、依存関係をインストールする前にcomposer audit
ステップを追加することをお勧めします。COMPOSER_PROCESS_TIMEOUT
を設定する場合は、 env
キーワードを使用してワークフロー ファイルに設定できます。 - name : Setup PHP with composer and custom process timeout
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_PROCESS_TIMEOUT : 300
Xdebug
を使用し、 PCOV
無効にするには、 coverage: xdebug
を指定します。
サポートされているすべての PHP バージョンで実行します。
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebug
coverage: xdebug
指定すると、PHP バージョンと互換性のある最新バージョンの Xdebug がデフォルトでセットアップされます。coverage: xdebug2
指定できます。 - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2
注: Xdebug は、Ubuntu GitHub Actions イメージではデフォルトで有効になっているため、ワークフローで Xdebug を使用していない場合は、PHP のパフォーマンスにプラスの影響を与えるため、無効にすることをお勧めします。詳細については、「カバレッジを無効にする」セクションを参照してください。
coverage: pcov
指定してPCOV
使用し、 Xdebug
無効にします。
PHP 7.1 以降の PHP バージョンで実行されます。
src
、 lib
、 app
以外の場合は、 ini-values
入力を使用してpcov.directory
指定します。 - name : Setup PHP with PCOV
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
ini-values : pcov.directory=api # optional, see above for usage.
coverage : pcov
pcov/clobber
セットアップする必要があります。 - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber
Xdebug
とPCOV
両方を無効にするには、 coverage: none
を指定します。
次の理由によりカバレッジを無効にします。
phpdbg
使用しています。blackfire
を使用してコードをプロファイリングしています。- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
キーワード
with
指定する
php-version
(オプション)string
を受け入れます。たとえば、 '8.4'
です。lowest
を受け入れます。highest
またはlatest
受け入れます。nightly
受け入れます。dx
という形式を受け入れます。ここで、 d
はメジャー バージョンです。たとえば、 5.x
、 7.x
、 8.x
などです。php-version-file
入力 (存在する場合)composer.lock
ファイルとplatform-overrides.php
値composer.json
ファイルとconfig.platform.php
値php-version-file
(オプション)string
を受け入れます。たとえば、 '.phpenv-version'
です。.php-version
ファイルが使用されます。.php-version
ファイルが見つからない場合は、最新の安定した PHP バージョンがセットアップされます。 extensions
(オプション)string
を受け入れます。たとえば、 mbstring, :opcache
。none
受け入れます。:
の接頭辞が付いた共有拡張子は無効になります。ini-file
(オプション)php.ini
ファイルを指定します。production
、 development
、またnone
受け入れます。php.ini
ファイルが使用されます。 ini-values
(オプション)php.ini
に追加する値を指定します。string
を受け入れます。たとえば、 post_max_size=256M, max_execution_time=180
などです。xdebug.mode="develop,coverage"
。 coverage
(オプション)xdebug
、 pcov
、またはnone
受け入れます。tools
(オプション)string
を受け入れます。例: phpunit, phpcs
php-version
GitHub Actions では、 setup-php
ステップにid
割り当てることができ、同じものを使用して後のステップで出力を取得できます。
- name : Setup PHP
id : setup-php
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Print PHP version
run : echo ${{ steps.setup-php.outputs.php-version }}
env
キーワードで指定
fail-fast
(オプション)false
に設定されています。true
とfalse
受け入れます。 phpts
(オプション)nts
受け入れ、スレッドセーフの場合はzts
またはts
受け入れます。nts
に設定されます。update
(オプション)true
とfalse
受け入れます。false
に設定されています。詳細については、以下を参照してください。
特定の PHP バージョンをセットアップします。
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit
複数のオペレーティング システム上で複数の PHP バージョンをセットアップします。
jobs :
run :
runs-on : ${{ matrix.operating-system }}
strategy :
matrix :
operating-system : ['ubuntu-latest', 'windows-latest', 'macos-latest']
php-versions : ['8.2', '8.3', '8.4']
phpunit-versions : ['latest']
include :
- operating-system : ' ubuntu-latest '
php-versions : ' 8.1 '
phpunit-versions : 10
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
extensions : mbstring, intl
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit:${{ matrix.phpunit-versions }}
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
PHP 8.5
の夜間ビルドをセットアップします。
steps :
- name : Setup nightly PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.5 '
extensions : mbstring
ini-values : post_max_size=256M, max_execution_time=180
coverage : xdebug
tools : php-cs-fixer, phpunit
デバッグ シンボルを使用して PHP ビルドをセットアップします。
debug
環境変数を使用して、PHP 5.6 以降のデバッグ シンボルを含むビルドをセットアップできます。注意事項
/usr/lib/debug/.build-id
ディレクトリに追加されます。これらのファイルは、PHP バイナリの ELF セクションのbuild-id
と一致し、 gdb
などのデバッグ ツールはこれらのファイルのシンボルを解決できます。pdb
ファイルとして追加されます。 steps :
- name : Setup PHP with debugging symbols
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
debug : true # specify true or false
TS
またはNTS
PHP をセットアップします。
NTS
バージョンはデフォルトで設定されています。 jobs :
run :
runs-on : [ubuntu-latest, windows-latest, macos-latest]
name : Setup PHP TS
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
phpts : ts # specify ts or nts
PHP バージョンの最新パッチに更新します。
ppa:ondrej/php
が見つからない場合、PHP バージョンは最新のパッチ リリースに更新されます。update
環境変数をtrue
に指定できます。 - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or false
ワークフローをデバッグする
問題をデバッグするには、 v2
代わりにverbose
タグを使用できます。
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 '
Ubuntu GitHub Runners 上の複数のアーキテクチャで PHP をセットアップします。
PHP 5.6
からPHP 8.4
は、 Ubuntu
上の複数のアーキテクチャ上のsetup-php
によってサポートされています。shivammathur/node
イメージをコンテナとして使用できます。これらには、 setup-php
用に互換性のあるNodejs
がインストールされています。ARM
ベースのセットアップにはセルフホスト ランナーが必要です。 jobs :
run :
runs-on : ubuntu-latest
container : shivammathur/node:latest-${{ matrix.arch }}
strategy :
matrix :
arch : ["amd64", "i386"]
steps :
- name : Install PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
自己ホスト型ランナーに PHP をセットアップします。
コンテナ化されたセルフホスト ランナーを設定するには、ベース オペレーティング システムに応じて次のガイドを参照してください。
ランナーをホスト OS または仮想マシンに直接セットアップするには、セルフホスト ランナーをセットアップする前に、この要件ガイドに従ってください。
ワークフローでサービス コンテナーを使用する場合は、Linux ホストまたは Linux 仮想マシン上にランナーをセットアップします。 GitHub Actions は Linux でのネストされた仮想化をサポートしていないため、サービスは Docker 化されたコンテナーでは機能しません。
セルフホスト環境の場合は、環境変数runner
に値self-hosted
を指定することをお勧めします。
jobs :
run :
runs-on : self-hosted
strategy :
matrix :
php-versions : ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
name : PHP ${{ matrix.php-versions }}
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ${{ matrix.php-versions }}
env :
runner : self-hosted
注意事項
GitHub-hosted
ランナーで使用されているものと同じラベルをself-hosted
ランナーに使用することは避けてください。
nektos/act
使用してUbuntu
ワークフローをローカルでテストします。
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
shivammathur/node
docker イメージを使用して、 act
を使用してワークフローをローカルで実行します。
ワークフローのruns-on
プロパティに一致するイメージ タグを選択します。たとえば、ワークフローでubuntu-20.04
を使用している場合は、 act -P ubuntu-20.04=shivammathur/node:2004
を実行します。
# For runs-on: ubuntu-latest
act -P ubuntu-latest=shivammathur/node:latest
# For runs-on: ubuntu-24.04
act -P ubuntu-24.04=shivammathur/node:2404
# For runs-on: ubuntu-22.04
act -P ubuntu-22.04=shivammathur/node:2204
# For runs-on: ubuntu-20.04
act -P ubuntu-20.04=shivammathur/node:2004
PHP 8.0 以降でジャストインタイム (JIT) を有効にします。
opcache.enable_cli=1
を設定して、cli モードでopcache
有効にします。Xdebug
、 PCOV
、およびzend_execute_ex
関数をオーバーライドするその他の拡張機能と競合するため、 coverage: none
を設定し、そのような拡張機能が追加されている場合は無効にします。opcache.jit=1235
およびopcache.jit_buffer_size=256M
が設定されており、 ini-values
入力を使用して変更できます。official PHP documentation
を参照してください。たとえば、バッファ サイズが64 MB
のtracing
モードで JIT を有効にします。
- name : Setup PHP with JIT in tracing mode
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
ini-values : opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=64M
shivammathur/cache-extensions
およびaction/cache
GitHub Actions を使用して、PHP 拡張機能をキャッシュできます。キャッシュされるとセットアップに非常に時間がかかる拡張機能は、次回のワークフロー実行で使用可能になり、直接有効になります。これにより、ワークフローの実行時間が短縮されます。
詳細については、 shivammathur/cache-extensions
を参照してください。
プロジェクトでコンポーザーを使用している場合は、コンポーザーの内部キャッシュ ディレクトリを永続化できます。キャッシュされた依存関係は、インストール中にダウンロードするのではなく、直接ロードされます。キャッシュされたファイルはチェック実行後も利用できるため、ワークフローの実行時間が短縮されます。
- name : Get composer cache directory
id : composer-cache
run : echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name : Cache dependencies
uses : actions/cache@v4
with :
path : ${{ steps.composer-cache.outputs.dir }}
key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-
- name : Install dependencies
run : composer install --prefer-dist
注意事項
action/cache
使用してvendor
ディレクトリをキャッシュしないでください。composer.lock
コミットしない場合は、 composer.json
のハッシュをキャッシュのキーとして使用できます。 key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
composer
の依存関係をサポートし、 prefer-lowest
およびprefer-stable
オプションを使用する場合、それらをマトリックスに保存してキーに追加できます。 key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}-
複数のツールをセットアップするワークフローが多数ある場合、またはコンポーザーへの依存関係が多数ある場合、コンポーザーに対する GitHub のレート制限に達する可能性があります。また、メジャー バージョンのみ、またはmajor.minor
形式のバージョンのみを指定すると、レート制限に達する可能性があります。これを回避するには、 GITHUB_TOKEN
環境変数を設定してOAuth
トークンを指定します。この目的には、 GITHUB_TOKEN
シークレットを使用できます。
COMPOSER_TOKEN
環境変数はGITHUB_TOKEN
に代わって非推奨となり、次のメジャー バージョンでは削除される予定です。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
プライベート Composer の依存関係に Private Packagist を使用する場合は、 PACKAGIST_TOKEN
環境変数を設定して認証を行うことができます。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }}
GitHub または Private Packagist に加えて、他の場所でホストされているプライベート リポジトリを認証する場合は、JSON 形式の認証方法と資格情報を使用してCOMPOSER_AUTH_JSON
環境変数を設定できます。詳細については、 composer documentation
の認証セクションを参照してください。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
COMPOSER_AUTH_JSON : |
{
"http-basic": {
"example.org": {
"username": "${{ secrets.EXAMPLE_ORG_USERNAME }}",
"password": "${{ secrets.EXAMPLE_ORG_PASSWORD }}"
}
}
}
ワークフローで複数行の PHP コードを実行する必要がある場合は、ファイルに保存せずに簡単に実行できます。
コードをステップの run プロパティに配置し、シェルをphp {0}
として指定します。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
- name : Run PHP code
shell : php {0}
run : |
<?php
$welcome = "Hello, world";
echo $welcome;
問題マッチャーは、ログ内のエラーと警告を識別し、強調表示してコード注釈を作成することで、GitHub Actions UI で目立つように表示するjson
構成です。
このステップをsetup-php
ステップの後に追加して、 PHP
出力用の問題マッチャーをセットアップします。
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
このステップをsetup-php
ステップの後に追加して、 PHPUnit
出力用の問題マッチャーをセットアップします。
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
PHPStan は GitHub Actions でのエラー報告をサポートしているため、問題マッチャーは必要ありません。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src
Psalm は、出力形式github
を使用した GitHub Actions でのエラー報告をサポートしています。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github
phpstan
、 psalm
、 php-cs-fixer
、 phpcs
などのcheckstyle
レポートをサポートするツールの場合、 cs2pr
使用してコードに注釈を付けることができます。
例については、cs2pr ドキュメントを参照してください。
以下は
phpcs
を使用した例です。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : cs2pr, phpcs
- name : Run phpcs
run : phpcs -q --report=checkstyle src | cs2pr
さまざまな PHP フレームワークおよびパッケージでのsetup-php
の使用例。
フレームワーク/パッケージ | 実行します | ワークフロー |
---|---|---|
ブラックファイア | macOS 、 ubuntu 、 windows | ブラックファイア.yml |
ブラックファイアプレイヤー | macOS 、 ubuntu 、 windows | blackfire-player.yml |
CakePHP とMySQL およびRedis | ubuntu | ケーキphp-mysql.yml |
CakePHP とPostgreSQL およびRedis | ubuntu | ケーキphp-postgres.yml |
サービスなしの CakePHP | macOS 、 ubuntu 、 windows | ケーキphp.yml |
コードイグナイター | macOS 、 ubuntu 、 windows | コードイグナイター.yml |
ラミナスMVC | macOS 、 ubuntu 、 windows | ラミナス-mvc.yml |
MySQL とRedis を使用した Laravel | ubuntu | laravel-mysql.yml |
PostgreSQL とRedis を使用した Laravel | ubuntu | laravel-postgres.yml |
サービスのないLaravel | macOS 、 ubuntu 、 windows | laravel.yml |
MySQL とRedis 使用した Lumen | ubuntu | ルーメン-mysql.yml |
PostgreSQL とRedis を使用した Lumen | ubuntu | ルーメン-postgres.yml |
サービスなしのルーメン | macOS 、 ubuntu 、 windows | ルーメン.yml |
MySQL を使用した Phalcon | ubuntu | ファルコン-mysql.yml |
Phalcon とPostgreSQL | ubuntu | ファルコン-postgres.yml |
根・岩盤 | ubuntu | 岩盤.yml |
ルーツ/セージ | ubuntu | sage.yml |
スリムなフレームワーク | macOS 、 ubuntu 、 windows | スリムフレームワーク.yml |
MySQL を使用した Symfony | ubuntu | symfony-mysql.yml |
Symfony とPostgreSQL | ubuntu | symfony-postgres.yml |
サービスのない Symfony | macOS 、 ubuntu 、 windows | symfony.yml |
Yii2 スターター キットMySQL 付き) | ubuntu | yii2-mysql.yml |
PostgreSQL を使用した Yii2 スターター キット | ubuntu | yii2-postgres.yml |
setup-php
バージョンとしてv2
タグを使用します。これはローリングタグであり、最新のマイナーリリースおよびパッチリリースと同期されます。 v2
では、バグ修正、セキュリティ パッチ、新機能、最新の PHP リリースのサポートが自動的に取得されます。verbose
タグを一時的に使用できます。すべてのログが出力され、最新のリリースと同期されます。main
ブランチをバージョンとして使用することは強くお勧めできません。メジャー リリースには重大な変更があるため、ワークフローが中断される可能性があります。v1
タグまたは1.xy
バージョンを使用している場合は、 v1
サポートされなくなっているため、v2 に切り替える必要があります。 setup-php
のロゴは php.net ロゴの派生作品であり、CC BY-SA 4.0 ライセンスに基づいてライセンスされています。 貢献は大歓迎です!
setup-php
およびその他の関連プロジェクトの貢献者
setup-php
の使用経験を共有してください。多くのユーザーと組織が GitHub スポンサー経由で setup-php をサポートしています。
これらの企業は、このプロジェクトの開発を支援するために、setup-php に自社の製品とサービスを惜しみなく提供しています。