Configurez PHP avec les extensions requises, la configuration php.ini, la prise en charge de la couverture de code et divers outils tels que composer dans GitHub Actions. Cette action vous donne une interface multiplateforme pour configurer l'environnement PHP dont vous avez besoin pour tester votre application. Reportez-vous à la section Utilisation et aux exemples pour voir comment l'utiliser.
Les exécuteurs GitHub-hosted
et self-hosted
sont pris en charge par setup-php
sur les systèmes d'exploitation/plates-formes suivants.
Environnement virtuel | Étiquette de flux de travail YAML | PHP préinstallé |
---|---|---|
Ubuntu 24.04 | ubuntu-24.04 | PHP 8.3 |
Ubuntu 22.04 | ubuntu-latest ou ubuntu-22.04 | PHP 8.1 |
Ubuntu 20.04 | ubuntu-20.04 | PHP 7.4 à PHP 8.3 |
Windows Serveur 2022 | windows-latest ou windows-2022 | PHP 8.3 |
Windows Serveur 2019 | windows-2019 | PHP 8.3 |
macOS Sequoia 15.x | macos-15 | - |
macOS Sonoma 14.x | macos-latest ou macos-14 | - |
macOS Ventura 13.x | macos-13 | PHP 8.3 |
Système d'exploitation hôte/environnement virtuel | Étiquette de flux de travail YAML |
---|---|
Ubuntu 24.04 | self-hosted ou Linux |
Ubuntu 22.04 | self-hosted ou Linux |
Ubuntu 20.04 | self-hosted ou Linux |
Debian12 | self-hosted ou Linux |
Debian 11 | self-hosted ou Linux |
Windows 7 et plus récent | self-hosted ou Windows |
Windows Server 2012 R2 et versions ultérieures | self-hosted ou Windows |
macOS Sequoia 15.x x86_64/arm64 | self-hosted ou macOS |
macOS Sonoma 14.x x86_64/arm64 | self-hosted ou macOS |
macOS Ventura 13.x x86_64/arm64 | self-hosted ou macOS |
setup-php
y bascule, sinon il installe la version PHP. Sur tous les systèmes d'exploitation/plates-formes pris en charge, les versions PHP suivantes peuvent être configurées en fonction du programme d'exécution.
Version PHP | Stabilité | Prise en charge des versions | Soutien aux coureurs |
---|---|---|---|
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 |
Remarques :
8.5
dans l'entrée php-version
installe une version nocturne de PHP 8.5.0-dev
. Voir la configuration de build nocturne pour plus d’informations.PHP 8.0
et supérieur, reportez-vous à la section de configuration JIT. Les extensions PHP peuvent être configurées à l'aide de l'entrée extensions
. Il accepte une string
au format csv.
Ubuntu
, des extensions disponibles sous forme de package, disponibles sur PECL
ou sur un référentiel git peuvent être configurées. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole
Sous Windows
, les extensions disponibles sur PECL
qui possèdent le binaire DLL
peuvent être mises en place.
Sur macOS
, des extensions disponibles sur PECL
ou un dépôt git peuvent être mises en place.
Sur Ubuntu
et macOS
pour compiler et installer une extension à partir d'un référentiel git, suivez ce guide.
Les extensions installées avec PHP si spécifiées sont activées.
Des versions spécifiques des extensions disponibles sur PECL
peuvent être configurées en suffixant le nom de l'extension avec la version. Ceci est utile pour installer d’anciennes versions d’extensions prenant en charge les versions PHP en fin de vie.
- 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
peuvent être configurées en suffixant le nom de l'extension avec son état, c'est-à-dire alpha
, beta
, devel
ou snapshot
. - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta
Sur Ubuntu
et macOS
pour compiler et installer une extension de PECL avec des bibliothèques ou une configuration personnalisée, suivez ce guide.
Les extensions partagées peuvent être désactivées en les préfixant d'un :
. Toutes les extensions dépendant de l'extension spécifiée seront également désactivées.
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcache
none
. none
spécifiée avec d'autres extensions, elle est hissée au début de l'entrée. Ainsi, toutes les extensions partagées seront d'abord désactivées, puis le reste des extensions en entrée sera traité. Remarque : Cela désactive toutes les extensions partagées principales et tierces et peut donc interrompre certains outils qui en ont besoin. Les extensions requises sont à nouveau activées lorsque les outils sont configurés au mieux. Il est donc recommandé d'ajouter les extensions requises pour vos outils après none
dans la saisie extensions
pour éviter tout problème.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
peut être configurée avec une version ICU
spécifique pour PHP 5.6
et supérieur dans les flux de travail Ubuntu
en suffixant intl
avec la version ICU
. ICU 50.2
et les versions plus récentes sont prises en charge. Reportez-vous aux ICU builds
pour connaître les versions spécifiques prises en charge. - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1
Les extensions chargées par défaut après l'exécution setup-php
peuvent être trouvées sur le wiki.
Ces extensions ont un support personnalisé :
cubrid
et pdo_cubrid
sur Ubuntu
.event
, gearman
, geos
et relay
sur Ubuntu
et macOS
.blackfire
, couchbase
, ioncube
, oci8
, pdo_firebird
, pdo_oci
, pecl_http
, phalcon3
, phalcon4
, phalcon5
et zephir_parser
sur tous les systèmes d'exploitation pris en charge. Par défaut, les extensions qui ne peuvent pas être ajoutées ou désactivées laissent gracieusement un message d'erreur dans les journaux, l'exécution n'est pas interrompue. Pour modifier ce comportement, vous pouvez définir l'indicateur fail-fast
sur true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true
Ces outils peuvent être configurés globalement à l’aide de la saisie tools
. Il accepte une chaîne au format 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
ou phpDocumentor
, phpize
, phplint
, phpmd
, phpspec
, phpstan
, phpunit
, phpunit-bridge
, phpunit-polyfills
, pint
, prestissimo
, protoc
, psalm
, rector
, symfony
ou symfony-cli
, vapor
ou vapor-cli
, wp
ou wp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunit
vendor/package
correspondant à la liste sur Packagist. Ce format accepte les mêmes contraintes de version que composer
. - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm
Pour configurer une version particulière d'un outil, spécifiez-la sous la forme tool:version
.
La version peut être au format suivant :
tool:1.2.3
ou tool:1.2.3-beta1
.tool:1
ou tool:1.x
.tool:1.2
ou tool:1.2.x
. Lorsque vous spécifiez uniquement la version majeure ou la version au format major.minor
, la dernière version du correctif correspondant à l'entrée sera configurée.
À l'exception des versions majeures de composer
, si vous spécifiez uniquement la version major
ou la version au format major.minor
pour un outil, vous pouvez obtenir un taux limité par l'API de GitHub. Pour éviter cela, il est recommandé de fournir un jeton GitHub
OAuth. Vous pouvez le faire en définissant la variable d'environnement GITHUB_TOKEN
. La variable d'environnement COMPOSER_TOKEN
est obsolète au profit de GITHUB_TOKEN
et sera supprimée dans la prochaine version majeure.
- 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 configurée par défaut. Vous pouvez configurer la version requise composer
en spécifiant la version majeure v1
ou v2
, ou la version au format major.minor
ou semver
. De plus, pour composer, snapshot
et preview
peuvent également être spécifiés pour configurer les versions respectives. - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2
tools: none
pour l'ignorer. - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none
Les outils pear
, pecl
, phpize
et php-config
sont configurés par défaut pour toutes les versions PHP prises en charge sous Linux et macOS.
La dernière version de blackfire
cli est configurée lorsque blackfire
est spécifié dans la saisie des outils. Veuillez vous référer à la documentation officielle pour utiliser blackfire
avec GitHub Actions.
Les outils prestissimo
et composer-prefetcher
seront ignorés à moins que composer:v1
ne soit également spécifié dans l'entrée des outils. Il est recommandé de supprimer prestissimo
et d'utiliser composer v2
.
Par défaut, sauf que les outils composer
qui ne peuvent pas être configurés correctement laissent un message d'erreur dans les journaux, l'exécution n'est pas interrompue. Pour modifier ce comportement, vous pouvez définir l'indicateur fail-fast
sur true
.
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : true
Remarques
tools
de saisie sont utiles pour configurer des outils qui ne sont utilisés que dans les flux de travail CI, gardant ainsi votre composer.json
bien rangé.--no-dev
et installer les outils requis à l'aide de la saisie tools
pour accélérer votre flux de travail.COMPOSER_NO_INTERACTION
est défini sur 1
et COMPOSER_PROCESS_TIMEOUT
est défini sur 0
. En effet, cela signifie que les commandes Composer dans vos scripts n'ont pas besoin de spécifier --no-interaction
.COMPOSER_NO_AUDIT
est défini sur 1
. Ainsi, si vous souhaitez auditer vos dépendances pour détecter les vulnérabilités de sécurité, il est recommandé d'ajouter une étape composer audit
avant de les installer.COMPOSER_PROCESS_TIMEOUT
différent, vous pouvez le définir dans votre fichier de workflow à l'aide du mot-clé 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
Spécifiez coverage: xdebug
pour utiliser Xdebug
et désactiver PCOV
.
Fonctionne sur toutes les versions PHP prises en charge.
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebug
coverage: xdebug
, la dernière version de Xdebug compatible avec la version PHP est configurée par défaut.coverage: xdebug2
. - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2
Remarque : Xdebug est activé par défaut sur les images Ubuntu GitHub Actions, donc si vous ne l'utilisez pas dans votre flux de travail, il est recommandé de le désactiver car cela aura un impact positif sur vos performances PHP. Veuillez vous référer à la section Désactiver la couverture pour plus de détails.
Spécifiez coverage: pcov
pour utiliser PCOV
et désactiver Xdebug
.
Fonctionne sur PHP 7.1 et les versions PHP plus récentes.
src
, lib
ou app
, spécifiez pcov.directory
à l'aide de l'entrée 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
avant d'exécuter vos tests. - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber
Spécifiez coverage: none
pour désactiver à la fois Xdebug
et PCOV
.
Désactivez la couverture pour ces raisons :
phpdbg
pour exécuter vos tests.blackfire
.- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none
Spécifiez using
with
mot-clé
php-version
(facultatif)string
. Par exemple '8.4'
.lowest
pour configurer la version PHP prise en charge la plus basse.highest
ou latest
pour configurer la dernière version stable de PHP.nightly
de mettre en place une build nocturne à partir de la branche master de PHP.dx
, où d
est la version majeure. Par exemple 5.x
, 7.x
et 8.x
.php-version-file
si elle existecomposer.lock
et la valeur platform-overrides.php
composer.json
et la valeur config.platform.php
php-version-file
(facultatif)string
. Par exemple '.phpenv-version'
..php-version
est utilisé..php-version
par défaut n'est pas trouvé, la dernière version stable de PHP est configurée. extensions
(facultatif)string
au format csv. Par exemple mbstring, :opcache
.none
pour désactiver toutes les extensions partagées.:
sont désactivées.ini-file
(facultatif)php.ini
de base.production
, development
ou none
.php.ini
est utilisé. ini-values
(facultatif)php.ini
.string
au format csv. Par exemple post_max_size=256M, max_execution_time=180
.xdebug.mode="develop,coverage"
. coverage
(facultatif)xdebug
, pcov
ou none
.tools
(facultatif)string
au format csv. Par exemple : phpunit, phpcs
php-version
Sur GitHub Actions, vous pouvez attribuer un id
à l'étape setup-php
, vous pouvez l'utiliser pour obtenir les résultats dans une étape ultérieure.
- 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 }}
Spécifiez à l'aide du mot-clé
env
fail-fast
(facultatif)false
.true
et false
. phpts
(facultatif)nts
pour non-thread-safe et zts
ou ts
pour thread-safe.nts
.update
(facultatif)true
et false
.false
.Voir ci-dessous pour plus d'informations.
Configurez une version PHP particulière.
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
Configurez plusieurs versions de PHP sur plusieurs systèmes d'exploitation.
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 }}
Configurez une version nocturne 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
Configurez une version PHP avec des symboles de débogage.
debug
pour configurer une construction avec des symboles de débogage pour PHP 5.6 et supérieur.Remarques
/usr/lib/debug/.build-id
. Ces fichiers correspondent à l' build-id
dans la section ELF des binaires PHP et les outils de débogage comme gdb
sont capables de résoudre les symboles de ces fichiers.pdb
dans le répertoire d'installation 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
Configurez
TS
ouNTS
PHP.
NTS
sont configurées par défaut. 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
Mise à jour vers le dernier patch des versions PHP.
ppa:ondrej/php
est manquant sur l'environnement Ubuntu GitHub, la version PHP est mise à jour avec la dernière version du correctif.update
sur true
pour la mise à jour vers la dernière version. - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or false
Déboguez votre flux de travail
Pour déboguer tout problème, vous pouvez utiliser la balise verbose
au lieu de v2
.
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 '
Configurez PHP sur plusieurs architectures sur Ubuntu GitHub Runners.
PHP 5.6
à PHP 8.4
sont pris en charge par setup-php
sur plusieurs architectures sur Ubuntu
.shivammathur/node
comme conteneurs. Ceux-ci ont Nodejs
compatibles installés pour setup-php
.ARM
, vous aurez besoin de coureurs auto-hébergés. 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 '
Configurez PHP sur un runner auto-hébergé.
Pour configurer un exécuteur auto-hébergé en conteneur, reportez-vous aux guides suivants en fonction de votre système d'exploitation de base.
Pour configurer le programme d'exécution directement sur le système d'exploitation hôte ou dans une machine virtuelle, suivez ce guide de configuration requise avant de configurer le programme d'exécution auto-hébergé.
Si votre flux de travail utilise des conteneurs de services, configurez le programme d'exécution sur un hôte Linux ou sur une machine virtuelle Linux. GitHub Actions ne prend pas en charge la virtualisation imbriquée sous Linux, les services ne fonctionneront donc pas dans un conteneur dockerisé.
Il est recommandé de spécifier la variable d'environnement runner
avec la valeur self-hosted
pour les environnements auto-hébergés.
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
Remarques
self-hosted
que celles utilisées par les coureurs GitHub-hosted
.Testez votre flux de travail
Ubuntu
localement à l'aide denektos/act
.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
Exécutez le flux de travail localement avec act
en utilisant des images docker shivammathur/node
.
Choisissez la balise d'image qui correspond à la propriété runs-on
dans votre flux de travail. Par exemple, si vous utilisez ubuntu-20.04
dans votre flux de travail, exécutez 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
Activez le juste-à-temps (JIT) sur PHP 8.0 et supérieur.
opcache
en mode cli en définissant opcache.enable_cli=1
.Xdebug
, PCOV
et d'autres extensions qui remplacent la fonction zend_execute_ex
, alors définissez coverage: none
et désactivez toute extension de ce type si elle est ajoutée.opcache.jit=1235
et opcache.jit_buffer_size=256M
sont définis et peuvent être modifiés à l'aide de la saisie ini-values
.official PHP documentation
. Par exemple pour activer JIT en mode tracing
avec une taille de tampon 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
Vous pouvez mettre en cache les extensions PHP en utilisant shivammathur/cache-extensions
et action/cache
GitHub Actions. Les extensions dont la configuration prend beaucoup de temps lorsqu'elles sont mises en cache sont disponibles lors de la prochaine exécution du flux de travail et sont activées directement. Cela réduit le temps d’exécution du workflow.
Reportez-vous à shivammathur/cache-extensions
pour plus de détails.
Si votre projet utilise composer, vous pouvez conserver le répertoire de cache interne de composer. Les dépendances mises en cache sont chargées directement au lieu de les télécharger lors de l'installation. Les fichiers mis en cache sont disponibles lors des exécutions de vérification et réduiront le temps d'exécution du flux de travail.
- 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
Remarques
vendor
à l'aide action/cache
car cela aurait des effets secondaires.composer.lock
, vous pouvez utiliser le hachage de composer.json
comme clé pour votre cache. key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
composer
et utilisez les options prefer-lowest
et prefer-stable
, vous pouvez les stocker dans votre matrice et les ajouter aux clés. key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}-
Si vous disposez d'un certain nombre de flux de travail qui configurent plusieurs outils ou qui comportent de nombreuses dépendances du compositeur, vous risquez d'atteindre la limite de débit de GitHub pour le compositeur. De plus, si vous spécifiez uniquement la version majeure ou la version au format major.minor
, vous pouvez atteindre la limite de débit. Pour éviter cela, vous pouvez spécifier un jeton OAuth
en définissant la variable d'environnement GITHUB_TOKEN
. Vous pouvez utiliser le secret GITHUB_TOKEN
à cette fin.
La variable d'environnement COMPOSER_TOKEN
est obsolète au profit de GITHUB_TOKEN
et sera supprimée dans la prochaine version majeure.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
Si vous utilisez Private Packagist pour vos dépendances de compositeur privé, vous pouvez définir la variable d'environnement PACKAGIST_TOKEN
pour s'authentifier.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }}
En plus de GitHub ou Private Packagist, si vous souhaitez authentifier des référentiels privés hébergés ailleurs, vous pouvez définir la variable d'environnement COMPOSER_AUTH_JSON
avec les méthodes d'authentification et les informations d'identification au format json. Veuillez vous référer à la section d'authentification dans composer documentation
pour plus de détails.
- 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 vous devez exécuter plusieurs lignes de code PHP dans votre flux de travail, vous pouvez le faire facilement sans l'enregistrer dans un fichier.
Mettez le code dans la propriété run d'une étape et spécifiez le shell comme 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;
Les correspondants de problèmes sont des configurations json
qui identifient les erreurs et les avertissements dans vos journaux et les mettent en évidence dans l'interface utilisateur des actions GitHub en les mettant en évidence et en créant des annotations de code.
Configurez les problèmes correspondants pour votre sortie PHP
en ajoutant cette étape après l'étape setup-php
.
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
Configurez les problèmes de correspondance pour votre sortie PHPUnit
en ajoutant cette étape après l'étape setup-php
.
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
PHPStan prend en charge le rapport d'erreurs dans GitHub Actions, il ne nécessite donc pas de recherche de problèmes.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src
Psalm prend en charge le rapport d'erreurs dans GitHub Actions avec un format de sortie github
.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github
Pour les outils prenant en charge les rapports checkstyle
comme phpstan
, psalm
, php-cs-fixer
et phpcs
vous pouvez utiliser cs2pr
pour annoter votre code.
Pour des exemples, reportez-vous à la documentation cs2pr.
Voici un exemple avec
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
Exemples d'utilisation setup-php
avec divers frameworks et packages PHP.
Cadre/Package | Fonctionne sur | Flux de travail |
---|---|---|
Feu noir | macOS , ubuntu et windows | feu noir.yml |
Joueur de feu noir | macOS , ubuntu et windows | blackfire-player.yml |
CakePHP avec MySQL et Redis | ubuntu | cakephp-mysql.yml |
CakePHP avec PostgreSQL et Redis | ubuntu | cakephp-postgres.yml |
CakePHP sans services | macOS , ubuntu et windows | gâteauphp.yml |
CodeIgniter | macOS , ubuntu et windows | codeigniter.yml |
Lames MVC | macOS , ubuntu et windows | laminas-mvc.yml |
Laravel avec MySQL et Redis | ubuntu | laravel-mysql.yml |
Laravel avec PostgreSQL et Redis | ubuntu | laravel-postgres.yml |
Laravel sans services | macOS , ubuntu et windows | laravel.yml |
Lumen avec MySQL et Redis | ubuntu | lumen-mysql.yml |
Lumen avec PostgreSQL et Redis | ubuntu | lumen-postgres.yml |
Lumen sans services | macOS , ubuntu et windows | lumen.yml |
Phalcon avec MySQL | ubuntu | phalcon-mysql.yml |
Phalcon avec PostgreSQL | ubuntu | phalcon-postgres.yml |
Racines/substrat rocheux | ubuntu | substrat rocheux.yml |
Racines/sauge | ubuntu | sage.yml |
Cadre mince | macOS , ubuntu et windows | slim-framework.yml |
Symfony avec MySQL | ubuntu | symfony-mysql.yml |
Symfony avec PostgreSQL | ubuntu | symfony-postgres.yml |
Symfony sans services | macOS , ubuntu et windows | symfony.yml |
Kit de démarrage Yii2 avec MySQL | ubuntu | yii2-mysql.yml |
Kit de démarrage Yii2 avec PostgreSQL | ubuntu | yii2-postgres.yml |
v2
comme version setup-php
. Il s'agit d'une balise tournante synchronisée avec les dernières versions mineures et correctives. Avec v2
vous obtenez automatiquement les corrections de bugs, les correctifs de sécurité, les nouvelles fonctionnalités et la prise en charge des dernières versions de PHP.verbose
des problèmes peut être utilisée temporairement. Il génère tous les journaux et est également synchronisé avec les dernières versions.main
comme version, cela pourrait interrompre votre flux de travail après les versions majeures car elles comportent des modifications importantes.v1
ou une version 1.xy
, vous devez passer à la v2 car v1
n'est plus prise en charge. setup-php
est une œuvre dérivée du logo php.net et est sous licence CC BY-SA 4.0. Les contributions sont les bienvenues !
Contributeurs de setup-php
et d'autres projets connexes
setup-php
.De nombreux utilisateurs et organisations prennent en charge setup-php via les sponsors GitHub.
Ces sociétés fournissent généreusement à setup-php leurs produits et services pour aider au développement de ce projet.