Configure PHP con las extensiones requeridas, configuración de php.ini, soporte de cobertura de código y varias herramientas como Composer en GitHub Actions. Esta acción le brinda una interfaz multiplataforma para configurar el entorno PHP que necesita para probar su aplicación. Consulte la sección Uso y ejemplos para ver cómo usarlo.
Tanto los ejecutores GitHub-hosted
como self-hosted
son compatibles con setup-php
en los siguientes sistemas operativos/plataformas.
Entorno virtual | Etiqueta de flujo de trabajo YAML | PHP preinstalado |
---|---|---|
ubuntu 24.04 | ubuntu-24.04 | PHP 8.3 |
ubuntu 22.04 | ubuntu-latest o ubuntu-22.04 | PHP 8.1 |
ubuntu 20.04 | ubuntu-20.04 | PHP 7.4 a PHP 8.3 |
Servidor Windows 2022 | windows-latest o windows-2022 | PHP 8.3 |
Servidor Windows 2019 | windows-2019 | PHP 8.3 |
macOS Secuoya 15.x | macos-15 | - |
macOS Sonoma 14.x | macos-latest o macos-14 | - |
macOS Ventura 13.x | macos-13 | PHP 8.3 |
SO host/entorno virtual | Etiqueta de flujo de trabajo YAML |
---|---|
ubuntu 24.04 | self-hosted o Linux |
ubuntu 22.04 | self-hosted o Linux |
ubuntu 20.04 | self-hosted o Linux |
Debian 12 | self-hosted o Linux |
Debian 11 | self-hosted o Linux |
Windows 7 y más reciente | self-hosted o Windows |
Windows Server 2012 R2 y más reciente | self-hosted o Windows |
macOS Sequoia 15.x x86_64/arm64 | self-hosted o macOS |
macOS Sonoma 14.x x86_64/arm64 | self-hosted o macOS |
macOS Ventura 13.x x86_64/arm64 | self-hosted o macOS |
setup-php
cambia a ella; de lo contrario, instala la versión de PHP. En todos los sistemas operativos/plataformas compatibles, se pueden configurar las siguientes versiones de PHP según el corredor.
Versión PHP | Estabilidad | Soporte de lanzamiento | Apoyo al corredor |
---|---|---|---|
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 |
Notas:
8.5
en la entrada php-version
se instala una compilación nocturna de PHP 8.5.0-dev
. Consulte la configuración de compilación nocturna para obtener más información.PHP 8.0
y superior, consulte la sección de configuración JIT. Las extensiones PHP se pueden configurar usando la entrada extensions
. Acepta una string
en formato csv.
Ubuntu
, se pueden configurar extensiones que están disponibles como paquete, disponibles en PECL
o en un repositorio git. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole
En Windows
, se pueden configurar extensiones disponibles en PECL
que tienen el binario DLL
.
En macOS
, se pueden configurar extensiones disponibles en PECL
o un repositorio git.
En Ubuntu
y macOS
para compilar e instalar una extensión desde un repositorio de git, siga esta guía.
Las extensiones instaladas junto con PHP, si se especifican, están habilitadas.
Se pueden configurar versiones específicas de extensiones disponibles en PECL
añadiendo el sufijo del nombre de la extensión a la versión. Esto es útil para instalar versiones antiguas de extensiones que admiten versiones de PHP al final de su vida útil.
- 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
se pueden configurar añadiendo al nombre de la extensión el sufijo de su estado, es decir, alpha
, beta
, devel
o snapshot
. - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta
En Ubuntu
y macOS
para compilar e instalar una extensión de PECL con bibliotecas o configuración personalizada, siga esta guía.
Las extensiones compartidas se pueden desactivar anteponiendo el prefijo :
. Todas las extensiones que dependen de la extensión especificada también se desactivarán.
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcache
none
. Cuando no se especifica none
junto con otras extensiones, se eleva al inicio de la entrada. Por lo tanto, todas las extensiones compartidas se deshabilitarán primero y luego se procesarán el resto de las extensiones en la entrada. Nota: Esto deshabilita todas las extensiones compartidas principales y de terceros y, por lo tanto, puede dañar algunas herramientas que las necesitan. Las extensiones requeridas se habilitan nuevamente cuando las herramientas se configuran de la mejor manera posible. Por lo tanto, se recomienda agregar las extensiones necesarias para sus herramientas después de none
en la entrada extensions
para evitar problemas.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
se puede configurar con una versión ICU
específica para PHP 5.6
y superior en flujos de trabajo Ubuntu
añadiendo el sufijo intl
a la versión ICU
. Se admiten ICU 50.2
y versiones más recientes. Consulte ICU builds
para conocer las versiones específicas admitidas. - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1
Las extensiones cargadas de forma predeterminada después de ejecutar setup-php
se pueden encontrar en la wiki.
Estas extensiones tienen soporte personalizado:
cubrid
y pdo_cubrid
en Ubuntu
.event
, gearman
, geos
y relay
en Ubuntu
y macOS
.blackfire
, couchbase
, ioncube
, oci8
, pdo_firebird
, pdo_oci
, pecl_http
, phalcon3
, phalcon4
, phalcon5
y zephir_parser
en todos los sistemas operativos compatibles. De forma predeterminada, las extensiones que no se pueden agregar o deshabilitar correctamente dejan un mensaje de error en los registros y la ejecución no se interrumpe. Para cambiar este comportamiento, puede establecer el indicador fail-fast
en true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true
Estas herramientas se pueden configurar globalmente utilizando la entrada tools
. Acepta una cadena en formato 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
o phpDocumentor
, phpize
, phplint
, phpmd
, phpspec
, phpstan
, phpunit
, phpunit-bridge
, phpunit-polyfills
, pint
, prestissimo
, protoc
, psalm
, rector
, symfony
o symfony-cli
, vapor
o vapor-cli
, wp
o wp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunit
vendor/package
que coincida con el listado en Packagist. Este formato acepta las mismas restricciones de versión que composer
. - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm
Para configurar una versión particular de una herramienta, especifíquela en el formulario tool:version
.
La versión puede tener el siguiente formato:
tool:1.2.3
o tool:1.2.3-beta1
.tool:1
o tool:1.x
.tool:1.2
o tool:1.2.x
. Cuando especifica solo la versión principal o la versión en formato major.minor
, se configurará la última versión del parche que coincida con la entrada.
Con la excepción de las versiones principales de composer
, si especifica solo la versión major
o la versión en formato major.minor
para una herramienta, puede obtener una velocidad limitada por la API de GitHub. Para evitar esto, se recomienda proporcionar un token GitHub
OAuth. Puede hacerlo configurando la variable de entorno GITHUB_TOKEN
. La variable de entorno COMPOSER_TOKEN
ha quedado obsoleta en favor de GITHUB_TOKEN
y se eliminará en la próxima versión principal.
- 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
está configurada de forma predeterminada. Puede configurar la versión requerida composer
especificando la versión principal v1
o v2
, o la versión en formato major.minor
o semver
. Además, para el compositor también se pueden especificar snapshot
y preview
para configurar las versiones respectivas. - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2
tools: none
para omitirlo. - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none
Las herramientas pear
, pecl
, phpize
y php-config
están configuradas de forma predeterminada para todas las versiones de PHP compatibles en Linux y macOS.
La última versión de blackfire
cli se configura cuando se especifica blackfire
en la entrada de herramientas. Consulte la documentación oficial para usar blackfire
con GitHub Actions.
Las herramientas prestissimo
y composer-prefetcher
se omitirán a menos que también se especifique composer:v1
en la entrada de herramientas. Se recomienda dejar prestissimo
y usar composer v2
.
De forma predeterminada, excepto las herramientas composer
que no se pueden configurar correctamente y dejan un mensaje de error en los registros, la ejecución no se interrumpe. Para cambiar este comportamiento, puede establecer el indicador fail-fast
en true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : true
Notas
tools
de entrada son útiles para configurar herramientas que solo se utilizan en flujos de trabajo de CI, manteniendo así ordenado su archivo composer.json
.--no-dev
e instalar las herramientas necesarias utilizando la entrada tools
para acelerar su flujo de trabajo.COMPOSER_NO_INTERACTION
se establece en 1
y COMPOSER_PROCESS_TIMEOUT
se establece en 0
. De hecho, esto significa que los comandos de Composer en sus scripts no necesitan especificar --no-interaction
.COMPOSER_NO_AUDIT
se establece en 1
. Entonces, si desea auditar sus dependencias en busca de vulnerabilidades de seguridad, se recomienda agregar un paso composer audit
antes de instalarlas.COMPOSER_PROCESS_TIMEOUT
diferente, puede configurarlo en su archivo de flujo de trabajo usando la palabra clave 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
Especifique coverage: xdebug
para usar Xdebug
y deshabilitar PCOV
.
Se ejecuta en todas las versiones de PHP compatibles.
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebug
coverage: xdebug
, la última versión de Xdebug compatible con la versión PHP se configura de forma predeterminada.coverage: xdebug2
. - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2
Nota : Xdebug está habilitado de forma predeterminada en las imágenes de Ubuntu GitHub Actions, por lo que si no lo está utilizando en su flujo de trabajo, se recomienda deshabilitarlo, ya que eso tendrá un impacto positivo en el rendimiento de PHP. Consulte la sección de cobertura de inhabilitación para obtener más detalles.
Especifique coverage: pcov
para usar PCOV
y deshabilite Xdebug
.
Se ejecuta en PHP 7.1 y versiones más recientes de PHP.
src
, lib
o app
, especifique pcov.directory
usando la entrada ini-values
. - 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
antes de ejecutar sus pruebas. - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber
Especifique coverage: none
para deshabilitar tanto Xdebug
como PCOV
.
Desactive la cobertura por estos motivos:
phpdbg
para ejecutar sus pruebas.blackfire
.- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
Especificar el uso
with
palabra clave
php-version
(opcional)string
. Por ejemplo '8.4'
.lowest
para configurar la versión de PHP más baja admitida.highest
o latest
para configurar la última versión estable de PHP.nightly
para configurar una compilación nocturna desde la rama maestra de PHP.dx
, donde d
es la versión principal. Por ejemplo 5.x
, 7.x
y 8.x
php-version-file
si existecomposer.lock
y el valor platform-overrides.php
composer.json
y el valor config.platform.php
php-version-file
(opcional)string
. Por ejemplo '.phpenv-version'
..php-version
..php-version
predeterminado, se configura la última versión estable de PHP. extensions
(opcional)string
en formato csv. Por ejemplo mbstring, :opcache
.none
para deshabilitar todas las extensiones compartidas.:
están deshabilitadas.ini-file
(opcional)php.ini
.production
, development
o none
.php.ini
de producción. ini-values
(opcional)php.ini
.string
en formato csv. Por ejemplo post_max_size=256M, max_execution_time=180
.xdebug.mode="develop,coverage"
. coverage
(opcional)xdebug
, pcov
o none
.tools
(opcional)string
en formato csv. Por ejemplo: phpunit, phpcs
php-version
En GitHub Actions puedes asignar una id
al paso setup-php
, puedes usar la misma para obtener los resultados en un paso posterior.
- 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 }}
Especificar usando la palabra clave
env
fail-fast
(opcional)false
.true
y false
. phpts
(opcional)nts
para no seguros para subprocesos y zts
o ts
para seguros para subprocesos.nts
.update
(opcional)true
y false
.false
.Consulte a continuación para obtener más información.
Configure una versión de PHP particular.
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
Configure múltiples versiones de PHP en múltiples sistemas operativos.
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 }}
Configure una compilación nocturna de
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
Configure una compilación PHP con símbolos de depuración.
debug
para configurar una compilación con símbolos de depuración para PHP 5.6 y superiores.Notas
/usr/lib/debug/.build-id
. Estos archivos coinciden con el build-id
en la sección ELF de los binarios de PHP y las herramientas de depuración como gdb
pueden resolver los símbolos de estos archivos.pdb
en el directorio de instalación de 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
Configure
TS
oNTS
PHP.
NTS
están configuradas de forma predeterminada. 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
Actualice al último parche de las versiones de PHP.
ppa:ondrej/php
en el entorno Ubuntu GitHub, la versión de PHP se actualiza a la última versión del parche.update
en true
para actualizar a la última versión. - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or false
Depura tu flujo de trabajo
Para depurar cualquier problema, puede utilizar la etiqueta verbose
en lugar de v2
.
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 '
Configure PHP en múltiples arquitecturas en Ubuntu GitHub Runners.
PHP 5.6
a PHP 8.4
son compatibles con setup-php
en múltiples arquitecturas en Ubuntu
.shivammathur/node
como contenedores. Estos tienen Nodejs
compatibles instalados para setup-php
.ARM
, necesitará ejecutores autohospedados. 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 '
Configure PHP en un ejecutor autohospedado.
Para configurar un ejecutor autohospedado en contenedores, consulte las siguientes guías según su sistema operativo base.
Para configurar el ejecutor directamente en el sistema operativo host o en una máquina virtual, siga esta guía de requisitos antes de configurar el ejecutor autohospedado.
Si su flujo de trabajo utiliza contenedores de servicios, configure el ejecutor en un host Linux o en una máquina virtual Linux. GitHub Actions no admite la virtualización anidada en Linux, por lo que los servicios no funcionarán en un contenedor dockerizado.
Se recomienda especificar la variable de entorno runner
con el valor self-hosted
para entornos autohospedados.
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
Notas
self-hosted
que utilizan los ejecutores GitHub-hosted
.Pruebe su flujo de trabajo
Ubuntu
localmente usandonektos/act
.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
Ejecute el flujo de trabajo localmente con act
usando imágenes de shivammathur/node
docker.
Elija la etiqueta de imagen que coincida con la propiedad runs-on
en su flujo de trabajo. Por ejemplo, si está utilizando ubuntu-20.04
en su flujo de trabajo, ejecute 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
Habilite Justo a tiempo (JIT) en PHP 8.0 y superior.
opcache
en modo cli configurando opcache.enable_cli=1
.Xdebug
, PCOV
y otras extensiones que anulan la función zend_execute_ex
, por lo tanto, configure coverage: none
y deshabilite dichas extensiones si se agregan.opcache.jit=1235
y opcache.jit_buffer_size=256M
están configurados y se pueden cambiar usando la entrada ini-values
.official PHP documentation
. Por ejemplo, para habilitar JIT en modo tracing
con un tamaño de búfer de 64 MB
.
- 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
Puede almacenar en caché las extensiones PHP usando shivammathur/cache-extensions
y action/cache
GitHub Actions. Las extensiones que tardan mucho en configurarse cuando se almacenan en caché están disponibles en la siguiente ejecución del flujo de trabajo y se habilitan directamente. Esto reduce el tiempo de ejecución del flujo de trabajo.
Consulte shivammathur/cache-extensions
para obtener más detalles.
Si su proyecto usa Composer, puede conservar el directorio de caché interno del compositor. Las dependencias almacenadas en caché se cargan directamente en lugar de descargarlas durante la instalación. Los archivos almacenados en caché están disponibles durante las ejecuciones de verificación y reducirán el tiempo de ejecución del flujo de trabajo.
- 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
Notas
vendor
usando action/cache
ya que eso tendrá efectos secundarios.composer.lock
, puedes usar el hash de composer.json
como clave para tu caché. key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
composer
y utiliza opciones prefer-lowest
y prefer-stable
, puede almacenarlas en su matriz y agregarlas a las claves. key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}-
Si tiene varios flujos de trabajo que configuran múltiples herramientas o tiene muchas dependencias del compositor, es posible que alcance el límite de velocidad de GitHub para el compositor. Además, si especifica solo la versión principal o la versión en formato major.minor
, puede alcanzar el límite de velocidad. Para evitar esto, puede especificar un token OAuth
configurando la variable de entorno GITHUB_TOKEN
. Puede utilizar el secreto GITHUB_TOKEN
para este propósito.
La variable de entorno COMPOSER_TOKEN
ha quedado obsoleta en favor de GITHUB_TOKEN
y se eliminará en la próxima versión principal.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
Si utiliza Private Packagist para sus dependencias de compositor privado, puede configurar la variable de entorno PACKAGIST_TOKEN
para autenticarse.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }}
Además de GitHub o Private Packagist, si desea autenticar repositorios privados alojados en otro lugar, puede configurar la variable de entorno COMPOSER_AUTH_JSON
con los métodos de autenticación y las credenciales en formato json. Consulte la sección de autenticación en composer documentation
para obtener más detalles.
- 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 }}"
}
}
}
Si tiene que ejecutar varias líneas de código PHP en su flujo de trabajo, puede hacerlo fácilmente sin guardarlo en un archivo.
Coloque el código en la propiedad de ejecución de un paso y especifique el shell como 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;
Los comparadores de problemas son configuraciones json
que identifican errores y advertencias en sus registros y los muestran de manera destacada en la interfaz de usuario de GitHub Actions resaltándolos y creando anotaciones de código.
Configure los comparadores de problemas para su salida PHP
agregando este paso después del paso setup-php
.
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
Configure los comparadores de problemas para su salida PHPUnit
agregando este paso después del paso setup-php
.
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
PHPStan admite informes de errores en GitHub Actions, por lo que no requiere comparadores de problemas.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src
Psalm admite informes de errores en GitHub Actions con un formato de salida github
.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github
Para herramientas que admitan informes checkstyle
como phpstan
, psalm
, php-cs-fixer
y phpcs
puede usar cs2pr
para anotar su código.
Para ver ejemplos, consulte la documentación de cs2pr.
Aquí hay un ejemplo con
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
Ejemplos de uso de setup-php
con varios marcos y paquetes PHP.
Marco/paquete | Sigue funcionando | Flujo de trabajo |
---|---|---|
fuego negro | macOS , ubuntu y windows | fuego negro.yml |
Jugador de fuego negro | macOS , ubuntu y windows | jugador-blackfire.yml |
CakePHP con MySQL y Redis | ubuntu | pastelphp-mysql.yml |
CakePHP con PostgreSQL y Redis | ubuntu | pastelphp-postgres.yml |
CakePHP sin servicios | macOS , ubuntu y windows | pastelphp.yml |
CódigoIgniter | macOS , ubuntu y windows | codeigniter.yml |
Laminas MVC | macOS , ubuntu y windows | laminas-mvc.yml |
Laravel con MySQL y Redis | ubuntu | laravel-mysql.yml |
Laravel con PostgreSQL y Redis | ubuntu | laravel-postgres.yml |
Laravel sin servicios | macOS , ubuntu y windows | laravel.yml |
Lumen con MySQL y Redis | ubuntu | lumen-mysql.yml |
Lumen con PostgreSQL y Redis | ubuntu | lumen-postgres.yml |
Lumen sin servicios | macOS , ubuntu y windows | lumen.yml |
Phalcon con MySQL | ubuntu | phalcon-mysql.yml |
Phalcon con PostgreSQL | ubuntu | phalcon-postgres.yml |
Raíces/lecho de roca | ubuntu | lecho de roca.yml |
Raíces/salvia | ubuntu | salvia.yml |
Marco delgado | macOS , ubuntu y windows | marco-delgado.yml |
Symfony con MySQL | ubuntu | Symfony-mysql.yml |
Symfony con PostgreSQL | ubuntu | Symfony-postgres.yml |
Symfony sin servicios | macOS , ubuntu y windows | Symfony.yml |
Kit de inicio Yii2 con MySQL | ubuntu | yii2-mysql.yml |
Kit de inicio Yii2 con PostgreSQL | ubuntu | yii2-postgres.yml |
v2
como versión setup-php
. Es una etiqueta continua y está sincronizada con las últimas versiones menores y de parches. Con v2
obtienes automáticamente correcciones de errores, parches de seguridad, nuevas funciones y soporte para las últimas versiones de PHP.verbose
se puede utilizar temporalmente. Genera todos los registros y también se sincroniza con las últimas versiones.main
como versión, ya que podría interrumpir su flujo de trabajo después de lanzamientos importantes, ya que tienen cambios importantes.v1
o una versión 1.xy
, debe cambiar a v2 ya que v1
ya no es compatible. setup-php
es un trabajo derivado del logotipo de php.net y tiene la licencia CC BY-SA 4.0. ¡Las contribuciones son bienvenidas!
Colaboradores de setup-php
y otros proyectos relacionados
setup-php
.Muchos usuarios y organizaciones admiten setup-php a través de patrocinadores de GitHub.
Estas empresas proporcionan generosamente a setup-php sus productos y servicios para ayudar en el desarrollo de este proyecto.