使用所需的擴充功能、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.3PECL上提供預發行版本的擴充功能可以透過在擴展名稱後添加其狀態(即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 : :opcachenone來停用所有共享擴充。當none與其他擴充一起指定時,它將被提升到輸入的開頭。因此,所有共享擴充將首先被停用,然後輸入中的其餘擴充將被處理。注意:這會停用所有核心和第三方共享擴展,因此可能會破壞一些需要它們的工具。當盡最大努力設定工具時,將再次啟用所需的擴充功能。因此,建議在extensions輸入中的none之後添加工具所需的擴展,以避免任何問題。
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstringintl後綴加上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, phpunitvendor/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:v2tools: 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 : xdebugcoverage: 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 : pcovpcov/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, phpcsphp-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 truefalse 。請參閱下文以了解更多資訊。
設定特定的 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或NTSPHP。
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 其產品和服務來幫助該專案的開發。