Настройте PHP с необходимыми расширениями, конфигурацией php.ini, поддержкой покрытия кода и различными инструментами, такими как композитор, в GitHub Actions. Это действие предоставляет вам кросс-платформенный интерфейс для настройки среды PHP, необходимой для тестирования вашего приложения. Обратитесь к разделу «Использование» и примерам, чтобы узнать, как это использовать.
Как GitHub-hosted
, так и self-hosted
средства запуска поддерживаются setup-php
на следующих ОС/платформах.
Виртуальная среда | Ярлык рабочего процесса 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 Сервер 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 |
Дебиан 12 | self-hosted или Linux |
Дебиан 11 | self-hosted или Linux |
Windows 7 и новее | self-hosted или Windows |
Windows Server 2012 R2 и новее | self-hosted или Windows |
macOS Sequoia 15.x x86_64/arm64 | self-hosted или macOS |
macOS Sonoma 14.x x86_64/arm64 | self-hosted или macOS |
macOS Ventura 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 |
Примечания:
8.5
во входных данных php-version
, будет установлена ночная сборка PHP 8.5.0-dev
. Дополнительную информацию см. в разделе Настройка ночной сборки.PHP 8.0
и выше, обратитесь к разделу конфигурации JIT. Расширения PHP можно настроить с помощью ввода extensions
. Он принимает string
в формате csv.
Ubuntu
можно установить расширения, доступные в виде пакета, доступного в PECL
или репозитории git. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole
В Windows
можно установить расширения, доступные в PECL
которые имеют двоичный файл DLL
.
В 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
не указано вместе с другими расширениями, оно поднимается в начало ввода. Таким образом, сначала будут отключены все общие расширения, а затем будут обработаны остальные расширения во входных данных. Примечание. Это отключает все основные и сторонние общие расширения и, таким образом, может привести к поломке некоторых инструментов, которые в них нуждаются. Необходимые расширения снова включаются, когда инструменты настраиваются с максимальной эффективностью. Поэтому рекомендуется добавлять расширения, необходимые для ваших инструментов, после none
во входных данных extensions
чтобы избежать каких-либо проблем.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstring
intl
можно настроить с конкретной версией ICU
для PHP 5.6
и выше в рабочих процессах Ubuntu
добавив к intl
суффикс версии ICU
. Поддерживаются 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
, можно найти в вики.
Эти расширения имеют специальную поддержку:
cubrid
и pdo_cubrid
в Ubuntu
.event
, gearman
, geos
и relay
в Ubuntu
и macOS
.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
соответствующий списку на Packagist. Этот формат принимает те же ограничения версии, что и 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
вы можете получить ограничение скорости API GitHub. Чтобы избежать этого, рекомендуется предоставить токен 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
. Вы можете настроить необходимую версию composer
, указав основную версию v1
или v2
или версию в формате major.minor
или semver
. Кроме того, для композитора также можно указать 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
Инструменты pear
, pecl
, phpize
и php-config
настроены по умолчанию для всех поддерживаемых версий PHP в Linux и macOS.
Последняя версия blackfire
Cli устанавливается, когда во входных данных инструментов указан blackfire
. Пожалуйста, обратитесь к официальной документации по использованию blackfire
с GitHub Actions.
Инструменты prestissimo
и composer-prefetcher
будут пропущены, если во входных данных инструментов также не указан composer:v1
. Рекомендуется отказаться от 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
и установить необходимые инструменты, используя ввод 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
, по умолчанию устанавливается последняя версия Xdebug, совместимая с версией PHP.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
, укажите pcov.directory
, используя ввод 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
перед выполнением тестов. - 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
в формате csv. Например mbstring, :opcache
.none
, чтобы отключить все общие расширения.:
отключены.ini-file
(необязательно)php.ini
.production
, development
или none
.php.ini
. ini-values
(необязательно)php.ini
.string
в формате csv. Например post_max_size=256M, max_execution_time=180
.xdebug.mode="develop,coverage"
. coverage
(необязательно)xdebug
, pcov
или none
.tools
(по желанию)string
в формате csv. Например: phpunit, phpcs
php-version
В действиях GitHub вы можете присвоить шагу setup-php
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
.true
и false
. phpts
(необязательно)nts
для непотокобезопасного режима и zts
или ts
для потокобезопасного.nts
.update
(необязательно)true
и false
.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
. Эти файлы соответствуют build-id
в разделе ELF двоичных файлов PHP, а инструменты отладки, такие как 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
отсутствует в среде Ubuntu GitHub, версия 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 '
Настройте PHP на нескольких архитектурах в Ubuntu GitHub Runners.
PHP 5.6
– PHP 8.4
поддерживаются setup-php
на нескольких архитектурах в Ubuntu
.shivammathur/node
в качестве контейнеров. У них установлены совместимые Nodejs
для setup-php
.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, поэтому сервисы не будут работать в док-контейнере.
Для локальных сред рекомендуется указать переменную среды 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
Примечания
self-hosted
, которые используются бегунами GitHub-hosted
.Проверьте свой рабочий процесс
Ubuntu
локально, используяnektos/act
.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
Запустите рабочий процесс локально с помощью act
используя образы докеров shivammathur/node
.
Выберите тег изображения, соответствующий свойству 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
Включите JIT (точно в срок) в PHP 8.0 и более поздних версиях.
opcache
в режиме cli, установив opcache.enable_cli=1
.Xdebug
, PCOV
и другими расширениями, которые переопределяют функцию zend_execute_ex
, поэтому установите coverage: none
и отключите любое такое расширение, если оно добавлено.opcache.jit=1235
и opcache.jit_buffer_size=256M
, которые можно изменить с помощью ввода ini-values
.official PHP documentation
. Например, чтобы включить JIT в режиме tracing
с размером буфера 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
Вы можете кэшировать расширения PHP, используя shivammathur/cache-extensions
и action/cache
GitHub Actions. Расширения, настройка которых при кэшировании занимает очень много времени, доступны при следующем запуске рабочего процесса и включаются напрямую. Это сокращает время выполнения рабочего процесса.
Подробности см. в shivammathur/cache-extensions
.
Если ваш проект использует композитор, вы можете сохранить каталог внутреннего кэша композитора. Кэшированные зависимости загружаются напрямую, а не загружаются во время установки. Кэшированные файлы доступны при выполнении проверок и сокращают время выполнения рабочего процесса.
- 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
Примечания
vendor
с помощью action/cache
так как это будет иметь побочные эффекты.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 }}-
Если у вас есть несколько рабочих процессов, которые настраивают несколько инструментов или имеют много зависимостей композитора, вы можете достичь ограничения скорости GitHub для композитора. Кроме того, если вы укажете только основную версию или версию в формате major.minor
, вы можете достичь ограничения скорости. Чтобы избежать этого, вы можете указать токен OAuth
, установив переменную среды GITHUB_TOKEN
. Для этой цели вы можете использовать секрет 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 для своих личных зависимостей композитора, вы можете установить переменную среды PACKAGIST_TOKEN
для аутентификации.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }}
Помимо GitHub или Private Packagist, если вы хотите аутентифицировать частные репозитории, размещенные в другом месте, вы можете установить переменную среды COMPOSER_AUTH_JSON
с методами аутентификации и учетными данными в формате 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 шага и укажите оболочку 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, выделяя их и создавая аннотации к коду.
Настройте средства сопоставления проблем для вывода PHP
, добавив этот шаг после шага setup-php
.
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
Настройте средства сопоставления проблем для выходных данных PHPUnit
, добавив этот шаг после шага setup-php
.
- 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 | blackfire.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 | тортphp.yml |
КодИгнитер | macOS , ubuntu и windows | codeigniter.yml |
Ламины MVC | macOS , ubuntu и windows | ламины-mvc.yml |
Laravel с MySQL и Redis | ubuntu | laravel-mysql.yml |
Laravel с PostgreSQL и Redis | ubuntu | laravel-postgres.yml |
Ларавел без сервисов | macOS , ubuntu и windows | laravel.yml |
Люмен с MySQL и Redis | ubuntu | люмен-mysql.yml |
Люмен с PostgreSQL и Redis | ubuntu | люмен-postgres.yml |
Люмен без услуг | macOS , ubuntu и windows | люмен.yml |
Phalcon с MySQL | ubuntu | phalcon-mysql.yml |
Phalcon с PostgreSQL | ubuntu | phalcon-postgres.yml |
Корни/основа | ubuntu | Bedrock.yml |
Корни/шалфей | ubuntu | шалфей.yml |
Тонкий каркас | macOS , ubuntu и windows | тонкий-framework.yml |
Symfony с MySQL | ubuntu | symfony-mysql.yml |
Symfony с PostgreSQL | ubuntu | symfony-postgres.yml |
Symfony без сервисов | macOS , ubuntu и windows | symfony.yml |
Стартовый комплект Yii2 с MySQL | ubuntu | yii2-mysql.yml |
Стартовый комплект Yii2 с PostgreSQL | ubuntu | yii2-postgres.yml |
v2
в качестве версии setup-php
. Это подвижный тег, который синхронизируется с последними второстепенными выпусками и обновлениями. С v2
вы автоматически получаете исправления ошибок, исправления безопасности, новые функции и поддержку последних версий PHP.verbose
тег. Он выводит все журналы, а также синхронизируется с последними выпусками.main
ветку в качестве версии, это может нарушить ваш рабочий процесс после основных выпусков, поскольку в них есть критические изменения.v1
или версию 1.xy
, вам следует переключиться на версию 2, поскольку v1
больше не поддерживается. setup-php
является производным от логотипа php.net и распространяется по лицензии CC BY-SA 4.0. Вклады приветствуются!
Участники setup-php
и других связанных проектов.
setup-php
.Многие пользователи и организации поддерживают setup-php через спонсоров GitHub.
Эти компании щедро предоставляют setup-php свои продукты и услуги, чтобы помочь в развитии этого проекта.