使用所需的扩展、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
、 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
时,就会设置最新版本的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 其产品和服务来帮助该项目的开发。