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.3PECL 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 : :opcachenone . 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, mbstringintl 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, phpunitvendor/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:v2tools: 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 : trueRemarques
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 : xdebugcoverage: 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 : xdebug2Remarque : 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 : pcovpcov/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
withmot-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.phpcomposer.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, phpcsphp-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, phpunitConfigurez 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, phpunitConfigurez 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 falseConfigurez
TSouNTSPHP.
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 ntsMise à 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 falseDé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-hostedRemarques
self-hosted que celles utilisées par les coureurs GitHub-hosted .Testez votre flux de travail
Ubuntulocalement à 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:2004Activez 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-distRemarques
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.