使用所需的擴充功能、php.ini 配置、程式碼覆蓋支援和各種工具(例如 GitHub Actions 中的 Composer)設定 PHP。此操作為您提供了一個跨平台介面來設定測試應用程式所需的 PHP 環境。請參閱“用法”部分和範例以了解如何使用它。
以下作業系統/平台上的setup-php
支援GitHub-hosted
和self-hosted
運行器。
虛擬環境 | YAML 工作流程標籤 | 預載 PHP |
---|---|---|
烏班圖24.04 | ubuntu-24.04 | PHP 8.3 |
烏班圖22.04 | ubuntu-latest 或ubuntu-22.04 | PHP 8.1 |
烏班圖20.04 | ubuntu-20.04 | PHP 7.4 至PHP 8.3 |
Windows Server 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 |
主機作業系統/虛擬環境 | YAML 工作流程標籤 |
---|---|
烏班圖24.04 | self-hosted 或Linux |
烏班圖22.04 | self-hosted 或Linux |
烏班圖20.04 | self-hosted 或Linux |
Debian 12 | self-hosted 或Linux |
Debian 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 索諾瑪 14.x x86_64/arm64 | self-hosted 或macOS |
macOS 文圖拉 13.x x86_64/arm64 | self-hosted 或macOS |
setup-php
會切換到該版本,否則會安裝 PHP 版本。 在所有支援的作業系統/平台上,可以根據執行程式設定以下 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 設定部分。 可以使用extensions
輸入來設定 PHP 擴充功能。它接受 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
後綴加上ICU
版本,可以在Ubuntu
工作流程中為PHP 5.6
及更高版本設定特定ICU
版本的擴展intl
。支援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
ecs
composer
、 composer-dependency-analyser
deployer
composer cs2pr
composer-normalize
、 composer-prefetcher
、 comeckerer-d-recoal quired composer-unused
composer-require-checker
flex
grpc_php_plugin
、 infection
phpcs
parallel-lint
phpdoc
phpize
pecl
phpDocumentor
phan
phing
phplint
phinx
、 phive
phpmd
php-config
、 php-cs-fixer
、 php-scoper
、 phpcbf
、 phpcpd
、 cs 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
時,就會設定最新版本的blackfire
cli。有關將blackfire
與 GitHub Actions 結合使用的信息,請參閱官方文件。
除非在工具輸入中還指定了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
指定coverage: xdebug
使用Xdebug
並停用PCOV
。
在所有受支援的 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 映像上預設啟用,因此,如果您不在工作流程中使用它,建議停用它,因為這將對您的 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
指定coverage: none
以停用Xdebug
和PCOV
。
由於以下原因禁用承保範圍:
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
設定以設定支援的最低 PHP 版本。highest
或latest
設定最新穩定的 PHP 版本。nightly
從 PHP 主分支設定夜間建置。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
,您可以使用相同的 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
。false
true
phpts
(可選)nts
表示非線程安全,接受zts
或ts
表示線程安全。nts
。update
(可選)false
true
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
檔案加入 PHP 安裝目錄。 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
調試您的工作流程
要偵錯任何問題,您可以使用verbose
標記而不是v2
。
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 '
在 Ubuntu GitHub Runners 上的多個架構上設定 PHP。
Ubuntu
上多種架構上的setup-php
支援PHP 5.6
到PHP 8.4
。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。
若要設定容器化自託管運行器,請根據您的基本作業系統參閱以下指南。
若要直接在主機作業系統或虛擬機器中設定執行程序,請在設定自架執行程序之前遵循此要求指南。
如果您的工作流程使用服務容器,則在 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
。
如果您的專案使用 Composer,您可以保留 Composer 的內部快取目錄。快取的依賴項是直接載入的,而不是在安裝時下載它們。快取的檔案在檢查運行中可用,並將減少工作流程執行時間。
- 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 }}-
如果您有多個工作流程設定了多個工具或具有許多 Composer 依賴項,則可能會達到 GitHub 對 Composer 的速率限制。此外,如果您僅指定主要版本或以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 }}
如果您使用 Private Packagist 作為私有 Composer 依賴項,則可以設定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 屬性中,並將 shell 指定為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;
問題匹配器是json
配置,可識別日誌中的錯誤和警告,並透過突出顯示它們並建立程式碼註釋,在 GitHub Actions UI 中突出顯示它們。
透過在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 Actions 中的錯誤報告,輸出格式github
。
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github
對於支援checkstyle
報告的工具,例如phpstan
、 psalm
、 php-cs-fixer
和phpcs
您可以使用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
將setup-php
與各種 PHP 框架和套件一起使用的範例。
框架/包 | 運行於 | 工作流程 |
---|---|---|
黑火 | macOS 、 ubuntu 和windows | 黑火.yml |
黑火玩家 | macOS 、 ubuntu 和windows | blackfire-player.yml |
CakePHP 與MySQL 和Redis | ubuntu | cakephp-mysql.yml |
CakePHP 與PostgreSQL 和Redis | ubuntu | cakephp-postgres.yml |
沒有服務的 CakePHP | macOS 、 ubuntu 和windows | cakephp.yml |
代碼點火器 | macOS 、 ubuntu 和windows | 代碼點火器.yml |
層狀MVC | macOS 、 ubuntu 和windows | 層流-mvc.yml |
Laravel 與MySQL 和Redis | ubuntu | laravel-mysql.yml |
Laravel 與PostgreSQL 和Redis | ubuntu | laravel-postgres.yml |
沒有服務的 Laravel | macOS 、 ubuntu 和windows | laravel.yml |
Lumen 與MySQL 和Redis | ubuntu | lumen-mysql.yml |
Lumen 與PostgreSQL 和Redis | ubuntu | 流明-postgres.yml |
無服務的流明 | macOS 、 ubuntu 和windows | 流明.yml |
Phalcon 與MySQL | ubuntu | phalcon-mysql.yml |
Phalcon 與PostgreSQL | ubuntu | phalcon-postgres.yml |
根/基岩 | ubuntu | 基岩.yml |
根/聖人 | ubuntu | 聖人.yml |
纖薄的框架 | macOS 、 ubuntu 和windows | slim-framework.yml |
Symfony 與MySQL | ubuntu | symfony-mysql.yml |
Symfony 與PostgreSQL | ubuntu | symfony-postgres.yml |
沒有服務的 Symfony | macOS 、 ubuntu 和windows | symfony.yml |
附MySQL 的 Yii2 入門套件 | ubuntu | yii2-mysql.yml |
Yii2 入門套件與PostgreSQL | ubuntu | yii2-postgres.yml |
v2
標籤作為setup-php
版本。它是一個滾動標籤,並與最新的次要版本和補丁版本同步。使用v2
您可以自動獲得錯誤修復、安全性修補程式、新功能以及對最新 PHP 版本的支援。verbose
標籤。它輸出所有日誌並與最新版本同步。main
分支作為版本,這可能會在主要版本發布後破壞您的工作流程,因為它們具有重大變更。v1
標籤或1.xy
版本,您應該切換到 v2,因為v1
不再支援。 setup-php
的標誌是 php.net 標誌的衍生作品,並根據 CC BY-SA 4.0 授權。 歡迎貢獻!
setup-php
和其他相關項目的貢獻者
setup-php
的經驗。許多使用者和組織透過 GitHub 贊助商支持 setup-php。
這些公司慷慨地提供 setup-php 其產品和服務來幫助該專案的開發。