Siapkan PHP dengan ekstensi yang diperlukan, konfigurasi php.ini, dukungan cakupan kode, dan berbagai alat seperti komposer di GitHub Actions. Tindakan ini memberi Anda antarmuka lintas platform untuk menyiapkan lingkungan PHP yang Anda perlukan untuk menguji aplikasi Anda. Lihat bagian Penggunaan dan contoh untuk melihat cara menggunakannya.
Baik runner GitHub-hosted maupun self-hosted didukung oleh setup-php pada OS/Platform berikut.
| Lingkungan maya | Label alur kerja YAML | PHP yang sudah diinstal sebelumnya |
|---|---|---|
| Ubuntu 24.04 | ubuntu-24.04 | PHP 8.3 |
| Ubuntu 22.04 | ubuntu-latest atau ubuntu-22.04 | PHP 8.1 |
| Ubuntu 20.04 | ubuntu-20.04 | PHP 7.4 hingga PHP 8.3 |
| WindowsServer 2022 | windows-latest atau windows-2022 | PHP 8.3 |
| WindowsServer 2019 | windows-2019 | PHP 8.3 |
| macOS Sequoia 15.x | macos-15 | - |
| macOS Sonoma 14.x | macos-latest atau macos-14 | - |
| macOS Ventura 13.x | macos-13 | PHP 8.3 |
| OS host/lingkungan virtual | Label alur kerja YAML |
|---|---|
| Ubuntu 24.04 | self-hosted atau Linux |
| Ubuntu 22.04 | self-hosted atau Linux |
| Ubuntu 20.04 | self-hosted atau Linux |
| Debian 12 | self-hosted atau Linux |
| Debian 11 | self-hosted atau Linux |
| Windows 7 dan yang lebih baru | self-hosted atau Windows |
| Windows Server 2012 R2 dan yang lebih baru | self-hosted atau Windows |
| macOS Sequoia 15.x x86_64/arm64 | self-hosted atau macOS |
| macOS Sonoma 14.x x86_64/arm64 | self-hosted atau macOS |
| macOS Ventura 13.x x86_64/arm64 | self-hosted atau macOS |
setup-php akan beralih ke versi tersebut, jika tidak maka versi PHP akan diinstal. Pada semua OS/Platform yang didukung, versi PHP berikut dapat diatur sesuai runner.
| Versi PHP | Stabilitas | Rilis Dukungan | Dukungan Pelari |
|---|---|---|---|
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 |
Catatan:
8.5 dalam input php-version akan menginstal build malam PHP 8.5.0-dev . Lihat pengaturan build malam untuk informasi lebih lanjut.PHP 8.0 dan yang lebih baru, lihat bagian konfigurasi JIT. Ekstensi PHP dapat diatur menggunakan input extensions . Ia menerima string dalam format csv.
Ubuntu , ekstensi yang tersedia sebagai paket, tersedia di PECL atau repositori git dapat diatur. - name : Setup PHP with PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : imagick, swoole Di Windows , ekstensi yang tersedia di PECL yang memiliki biner DLL dapat diatur.
Di macOS , ekstensi yang tersedia di PECL atau repositori git dapat diatur.
Di Ubuntu dan macOS untuk mengkompilasi dan menginstal ekstensi dari repositori git, ikuti panduan ini.
Ekstensi yang diinstal bersama dengan PHP jika ditentukan diaktifkan.
Versi ekstensi tertentu yang tersedia di PECL dapat diatur dengan menambahkan akhiran nama ekstensi dengan versinya. Ini berguna untuk menginstal ekstensi versi lama yang mendukung versi PHP yang sudah habis masa pakainya.
- name : Setup PHP with specific version of PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 5.4 '
extensions : swoole-1.9.3PECL dapat diatur dengan menambahkan akhiran nama ekstensi dengan statusnya yaitu alpha , beta , devel atau snapshot . - name : Setup PHP with pre-release PECL extension
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : xdebug-beta Di Ubuntu dan macOS untuk mengkompilasi dan menginstal ekstensi dari PECL dengan perpustakaan atau konfigurasi khusus, ikuti panduan ini.
Ekstensi bersama dapat dinonaktifkan dengan mengawalinya dengan : . Semua ekstensi bergantung pada ekstensi yang ditentukan juga akan dinonaktifkan.
- name : Setup PHP and disable opcache
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : :opcachenone . Jika none yang ditentukan bersama dengan ekstensi lainnya, ekstensi tersebut akan diangkat ke awal masukan. Jadi, semua ekstensi yang dibagikan akan dinonaktifkan terlebih dahulu, kemudian ekstensi lainnya yang dimasukkan akan diproses. Catatan: Ini menonaktifkan semua ekstensi inti dan ekstensi bersama pihak ketiga sehingga dapat merusak beberapa alat yang memerlukannya. Ekstensi yang diperlukan diaktifkan kembali ketika alat disiapkan berdasarkan upaya terbaik. Jadi disarankan untuk menambahkan ekstensi yang diperlukan untuk alat Anda setelah none extensions yang dimasukkan untuk menghindari masalah apa pun.
- name : Setup PHP without any shared extensions except mbstring
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : none, mbstringintl dapat diatur dengan versi ICU tertentu untuk PHP 5.6 dan lebih tinggi di alur kerja Ubuntu dengan menambahkan intl dengan versi ICU . ICU 50.2 dan versi yang lebih baru didukung. Lihat ICU builds untuk versi spesifik yang didukung. - name : Setup PHP with intl
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : intl-70.1 Ekstensi yang dimuat secara default setelah setup-php dijalankan dapat ditemukan di wiki.
Ekstensi ini memiliki dukungan khusus:
cubrid dan pdo_cubrid di Ubuntu .event , gearman , geos dan relay di Ubuntu dan macOS .blackfire , couchbase , ioncube , oci8 , pdo_firebird , pdo_oci , pecl_http , phalcon3 , phalcon4 , phalcon5 , dan zephir_parser di semua OS yang didukung. Secara default, ekstensi yang tidak dapat ditambahkan atau dinonaktifkan akan meninggalkan pesan kesalahan di log, eksekusi tidak terganggu. Untuk mengubah perilaku ini, Anda dapat menyetel tanda fail-fast ke true .
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
extensions : oci8
env :
fail-fast : true Alat-alat ini dapat diatur secara global menggunakan masukan tools . Ia menerima string dalam 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 atau phpDocumentor , phpize , phplint , phpmd , phpspec , phpstan , phpunit , phpunit-bridge , phpunit-polyfills , pint , prestissimo , protoc , psalm , rector , symfony atau symfony-cli , vapor atau vapor-cli , wp atau wp-cli
- name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : php-cs-fixer, phpunitvendor/package yang cocok dengan daftar di Packagist. Format ini menerima batasan versi yang sama dengan composer . - name : Setup PHP with tools
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : vimeo/psalm Untuk menyiapkan versi alat tertentu, tentukan dalam formulir tool:version .
Versi dapat dalam format berikut:
tool:1.2.3 atau tool:1.2.3-beta1 .tool:1 atau tool:1.x .tool:1.2 atau tool:1.2.x . Ketika Anda hanya menentukan versi mayor atau versi dalam format major.minor , versi patch terbaru yang cocok dengan input akan dikonfigurasi.
Dengan pengecualian composer versi mayor, jika Anda hanya menentukan versi major atau versi dalam format major.minor untuk suatu alat, Anda bisa mendapatkan tarif yang dibatasi oleh API GitHub. Untuk menghindari hal ini, disarankan untuk menyediakan token GitHub OAuth. Anda dapat melakukannya dengan mengatur variabel lingkungan GITHUB_TOKEN . Variabel lingkungan COMPOSER_TOKEN sudah tidak digunakan lagi dan digantikan dengan GITHUB_TOKEN dan akan dihapus pada versi utama berikutnya.
- 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 versi stabil terbaru diatur secara default. Anda dapat mengatur versi composer yang diperlukan dengan menentukan versi mayor v1 atau v2 , atau versi dalam format major.minor atau semver . Selain itu, untuk snapshot dan preview komposer juga dapat ditentukan untuk mengatur rilis masing-masing. - name : Setup PHP with composer v2
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : composer:v2tools: none untuk melewatinya. - name : Setup PHP without composer
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : none Alat pear , pecl , phpize dan php-config diatur secara default untuk semua versi PHP yang didukung di Linux dan macOS.
Versi terbaru dari blackfire cli diatur ketika blackfire ditentukan dalam input alat. Silakan merujuk ke dokumentasi resmi untuk menggunakan blackfire dengan GitHub Actions.
Alat prestissimo dan composer-prefetcher akan dilewati kecuali composer:v1 juga ditentukan dalam input alat. Disarankan untuk menghapus prestissimo dan menggunakan composer v2 .
Secara default, kecuali alat composer yang tidak dapat diatur dengan baik meninggalkan pesan kesalahan di log, eksekusi tidak terganggu. Untuk mengubah perilaku ini, Anda dapat menyetel tanda fail-fast ke true .
- name : Setup PHP with fail-fast
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : deployer
env :
fail-fast : trueCatatan
tools input berguna untuk menyiapkan alat yang hanya digunakan dalam alur kerja CI, sehingga composer.json Anda tetap rapi.--no-dev dan menginstal alat yang diperlukan menggunakan input tools untuk mempercepat alur kerja Anda.COMPOSER_NO_INTERACTION disetel ke 1 dan COMPOSER_PROCESS_TIMEOUT disetel ke 0 . Artinya, perintah Komposer di skrip Anda tidak perlu menentukan --no-interaction .COMPOSER_NO_AUDIT disetel ke 1 . Jadi jika Anda ingin mengaudit dependensi Anda untuk mengetahui kerentanan keamanan, disarankan untuk menambahkan langkah composer audit sebelum Anda menginstalnya.COMPOSER_PROCESS_TIMEOUT yang berbeda, Anda dapat menyetelnya di file alur kerja Anda menggunakan kata kunci 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 Tentukan coverage: xdebug untuk menggunakan Xdebug dan menonaktifkan PCOV .
Berjalan di semua versi PHP yang didukung.
- name : Setup PHP with Xdebug
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : xdebugcoverage: xdebug , versi terbaru Xdebug yang kompatibel dengan versi PHP sudah diatur secara default.coverage: xdebug2 . - name : Setup PHP with Xdebug 2.x
uses : shivammathur/setup-php@v2
with :
php-version : ' 7.4 '
coverage : xdebug2Catatan : Xdebug diaktifkan secara default pada gambar Ubuntu GitHub Actions, jadi jika Anda tidak menggunakannya dalam alur kerja Anda, disarankan untuk menonaktifkannya karena ini akan berdampak positif pada kinerja PHP Anda. Silakan merujuk ke bagian menonaktifkan cakupan untuk detailnya.
Tentukan coverage: pcov untuk menggunakan PCOV dan nonaktifkan Xdebug .
Berjalan pada PHP 7.1 dan versi PHP yang lebih baru.
src , lib atau, app , tentukan pcov.directory menggunakan input 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 sebelum menjalankan pengujian. - name : Setup PCOV
run : |
composer require pcov/clobber
vendor/bin/pcov clobber Tentukan coverage: none untuk menonaktifkan Xdebug dan PCOV .
Nonaktifkan cakupan karena alasan berikut:
phpdbg untuk menjalankan pengujian Anda.blackfire .- name : Setup PHP with no coverage driver
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
coverage : none Tentukan penggunaan
withkata kunci
php-version (opsional)string . Misalnya '8.4' .lowest untuk menyiapkan versi PHP terendah yang didukung.highest atau latest untuk menyiapkan versi PHP stabil terbaru.nightly untuk menyiapkan build nightly dari cabang master PHP.dx , dengan d versi utama. Misalnya 5.x , 7.x dan 8.x .php-version-file jika adacomposer.lock dan nilai platform-overrides.phpcomposer.json dan nilai config.platform.php php-version-file (opsional)string . Misalnya '.phpenv-version' ..php-version digunakan..php-version default tidak ditemukan, versi PHP stabil terbaru telah disiapkan. extensions (opsional)string dalam format csv. Misalnya mbstring, :opcache .none untuk menonaktifkan semua ekstensi bersama.: dinonaktifkan.ini-file (opsional)php.ini .production , development atau none .php.ini digunakan. ini-values (opsional)php.ini .string dalam format csv. Misalnya post_max_size=256M, max_execution_time=180 .xdebug.mode="develop,coverage" . coverage (opsional)xdebug , pcov atau none .tools (opsional)string dalam format csv. Misalnya: phpunit, phpcsphp-version Pada GitHub Actions Anda dapat menetapkan langkah setup-php sebuah id , Anda dapat menggunakan hal yang sama untuk mendapatkan output di langkah selanjutnya.
- 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 }}Tentukan menggunakan kata kunci
env
fail-fast (opsional)false .true dan false . phpts (opsional)nts untuk non-thread-safe dan zts atau ts untuk thread-safe.nts .update (opsional)true dan false .false .Lihat di bawah untuk informasi lebih lanjut.
Siapkan versi PHP tertentu.
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, phpunitSiapkan beberapa versi PHP di beberapa sistem operasi.
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 }}Siapkan build malam
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, phpunitSiapkan build PHP dengan simbol debugging.
debug untuk menyiapkan build dengan simbol debugging untuk PHP 5.6 dan yang lebih baru.Catatan
/usr/lib/debug/.build-id . File-file ini cocok dengan build-id di bagian ELF dari biner PHP dan alat debugging seperti gdb dapat menyelesaikan simbol-simbol dari file-file ini.pdb di direktori instalasi PHP. steps :
- name : Setup PHP with debugging symbols
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
debug : true # specify true or falseSiapkan
TSatauNTSPHP.
NTS diatur secara default. 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 ntsPerbarui ke patch terbaru versi PHP.
ppa:ondrej/php tidak ada di lingkungan GitHub Ubuntu, versi PHP diperbarui ke rilis patch terbaru.update ke true untuk memperbarui ke rilis terbaru. - name : Setup PHP with latest versions
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
update : true # specify true or falseDebug alur kerja Anda
Untuk men-debug masalah apa pun, Anda dapat menggunakan tag verbose alih-alih v2 .
- name : Setup PHP with logs
uses : shivammathur/setup-php@verbose
with :
php-version : ' 8.4 'Siapkan PHP pada berbagai arsitektur di Ubuntu GitHub Runners.
PHP 5.6 hingga PHP 8.4 didukung oleh setup-php pada berbagai arsitektur di Ubuntu .shivammathur/node sebagai wadah. Ini telah menginstal Nodejs yang kompatibel untuk setup-php .ARM , Anda memerlukan runner yang dihosting sendiri. 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 'Siapkan PHP pada runner yang dihosting sendiri.
Untuk menyiapkan runner yang dihosting sendiri dalam container, lihat panduan berikut sesuai sistem operasi dasar Anda.
Untuk menyiapkan runner secara langsung di OS host atau di mesin virtual, ikuti panduan persyaratan ini sebelum menyiapkan runner yang dihosting sendiri.
Jika alur kerja Anda menggunakan kontainer layanan, siapkan runner di host Linux atau di mesin virtual Linux. GitHub Actions tidak mendukung virtualisasi bersarang di Linux, sehingga layanan tidak akan berfungsi dalam kontainer yang di-docker.
Disarankan untuk menentukan variabel lingkungan runner dengan nilai self-hosted untuk lingkungan yang dihosting sendiri.
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-hostedCatatan
self-hosted seperti yang digunakan oleh pelari GitHub-hosted .Uji alur kerja
UbuntuAnda secara lokal menggunakannektos/act.
jobs :
run :
runs-on : ubuntu-latest
steps :
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 ' Jalankan alur kerja secara lokal dengan act menggunakan gambar buruh pelabuhan shivammathur/node .
Pilih tag gambar yang cocok dengan properti runs-on di alur kerja Anda. Misalnya, jika Anda menggunakan ubuntu-20.04 dalam alur kerja Anda, jalankan 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:2004Aktifkan Just-in-time (JIT) pada PHP 8.0 dan yang lebih baru.
opcache dalam mode cli dengan menyetel opcache.enable_cli=1 .Xdebug , PCOV , dan ekstensi lain yang menggantikan fungsi zend_execute_ex , jadi atur coverage: none dan nonaktifkan ekstensi tersebut jika ditambahkan.opcache.jit=1235 dan opcache.jit_buffer_size=256M disetel yang dapat diubah menggunakan input ini-values .official PHP documentation . Misalnya untuk mengaktifkan JIT pada mode tracing dengan ukuran buffer 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 Anda dapat melakukan cache ekstensi PHP menggunakan shivammathur/cache-extensions dan action/cache GitHub Actions. Ekstensi yang membutuhkan waktu sangat lama untuk disiapkan saat di-cache tersedia pada alur kerja berikutnya dan diaktifkan secara langsung. Ini mengurangi waktu eksekusi alur kerja.
Lihat shivammathur/cache-extensions untuk detailnya.
Jika proyek Anda menggunakan komposer, Anda dapat mempertahankan direktori cache internal komposer. Dependensi yang di-cache dimuat secara langsung alih-alih mengunduhnya saat instalasi. File yang di-cache tersedia di seluruh proses pemeriksaan dan akan mengurangi waktu eksekusi alur kerja.
- 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-distCatatan
vendor menggunakan action/cache karena akan memiliki efek samping.composer.lock , Anda dapat menggunakan hash composer.json sebagai kunci untuk cache Anda. key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}composer dan menggunakan opsi prefer-lowest dan prefer-stable , Anda dapat menyimpannya dalam matriks Anda dan menambahkannya ke kunci. key : ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
restore-keys : ${{ runner.os }}-composer-${{ matrix.prefer }}- Jika Anda memiliki sejumlah alur kerja yang menyiapkan beberapa alat atau memiliki banyak dependensi komposer, Anda mungkin mencapai batas laju GitHub untuk komposer. Selain itu, jika Anda hanya menentukan versi mayor atau versi dalam format major.minor , Anda dapat mencapai batas kecepatan. Untuk menghindari hal ini, Anda dapat menentukan token OAuth dengan mengatur variabel lingkungan GITHUB_TOKEN . Anda dapat menggunakan rahasia GITHUB_TOKEN untuk tujuan ini.
Variabel lingkungan COMPOSER_TOKEN sudah tidak digunakan lagi dan digantikan dengan GITHUB_TOKEN dan akan dihapus pada versi utama berikutnya.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} Jika Anda menggunakan Private Packagist untuk dependensi komposer pribadi, Anda dapat mengatur variabel lingkungan PACKAGIST_TOKEN untuk diautentikasi.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
env :
PACKAGIST_TOKEN : ${{ secrets.PACKAGIST_TOKEN }} Selain GitHub atau Private Packagist, jika Anda ingin mengautentikasi repositori pribadi yang dihosting di tempat lain, Anda dapat mengatur variabel lingkungan COMPOSER_AUTH_JSON dengan metode autentikasi dan kredensial dalam format json. Silakan merujuk ke bagian otentikasi dalam composer documentation untuk lebih jelasnya.
- 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 }}"
}
}
}Jika Anda harus menjalankan beberapa baris kode PHP dalam alur kerja Anda, Anda dapat melakukannya dengan mudah tanpa menyimpannya ke file.
Letakkan kode di properti run suatu langkah dan tentukan shell sebagai 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; Pencocokan masalah adalah konfigurasi json yang mengidentifikasi kesalahan dan peringatan di log Anda dan menampilkannya secara jelas di UI Tindakan GitHub dengan menyorotnya dan membuat anotasi kode.
Siapkan pencocokan masalah untuk keluaran PHP Anda dengan menambahkan langkah ini setelah langkah setup-php .
- name : Setup problem matchers for PHP
run : echo "::add-matcher::${{ runner.tool_cache }}/php.json" Siapkan pencocokan masalah untuk keluaran PHPUnit Anda dengan menambahkan langkah ini setelah langkah setup-php .
- name : Setup problem matchers for PHPUnit
run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" PHPStan mendukung pelaporan kesalahan di GitHub Actions, sehingga tidak memerlukan pencocokan masalah.
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : phpstan
- name : Run PHPStan
run : phpstan analyse src Mazmur mendukung pelaporan kesalahan di GitHub Actions dengan format keluaran github .
- name : Setup PHP
uses : shivammathur/setup-php@v2
with :
php-version : ' 8.4 '
tools : psalm
- name : Run Psalm
run : psalm --output-format=github Untuk alat yang mendukung pelaporan checkstyle seperti phpstan , psalm , php-cs-fixer dan phpcs Anda dapat menggunakan cs2pr untuk membubuhi keterangan pada kode Anda.
Sebagai contoh, lihat dokumentasi cs2pr.
Berikut ini contoh dengan
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 Contoh penggunaan setup-php dengan berbagai framework dan paket PHP.
| Kerangka/Paket | Berjalan terus | Alur kerja |
|---|---|---|
| api hitam | macOS , ubuntu , dan windows | blackfire.yml |
| Pemain Api Hitam | macOS , ubuntu , dan windows | blackfire-player.yml |
CakePHP dengan MySQL dan Redis | ubuntu | kuephp-mysql.yml |
CakePHP dengan PostgreSQL dan Redis | ubuntu | cakephp-postgres.yml |
| CakePHP tanpa layanan | macOS , ubuntu dan windows | cakephp.yml |
| CodeIgniter | macOS , ubuntu dan windows | codeigniter.yml |
| Lamina MVC | macOS , ubuntu dan windows | lamina-mvc.yml |
Laravel dengan MySQL dan Redis | ubuntu | laravel-mysql.yml |
Laravel dengan PostgreSQL dan Redis | ubuntu | laravel-postgres.yml |
| Laravel tanpa layanan | macOS , ubuntu dan windows | laravel.yml |
Lumen dengan MySQL dan Redis | ubuntu | lumen-mysql.yml |
Lumen dengan PostgreSQL dan Redis | ubuntu | lumen-postgres.yml |
| Lumen tanpa layanan | macOS , ubuntu , dan windows | lumen.yml |
Phalcon dengan MySQL | ubuntu | phalcon-mysql.yml |
Phalcon dengan PostgreSQL | ubuntu | phalcon-postgres.yml |
| Akar/batuan dasar | ubuntu | batuan dasar.yml |
| Akar/bijak | ubuntu | sage.yml |
| Kerangka Ramping | macOS , ubuntu , dan windows | slim-framework.yml |
Simfoni dengan MySQL | ubuntu | symfony-mysql.yml |
Simfoni dengan PostgreSQL | ubuntu | symfony-postgres.yml |
| Symfony tanpa layanan | macOS , ubuntu , dan windows | symfony.yml |
Kit Pemula Yii2 dengan MySQL | ubuntu | yii2-mysql.yml |
Kit Pemula Yii2 dengan PostgreSQL | ubuntu | yii2-postgres.yml |
v2 sebagai versi setup-php . Ini adalah tag bergulir dan disinkronkan dengan rilis minor dan patch terbaru. Dengan v2 Anda secara otomatis mendapatkan perbaikan bug, patch keamanan, fitur baru dan dukungan untuk rilis PHP terbaru.verbose dapat digunakan sementara. Ini menampilkan semua log dan juga disinkronkan dengan rilis terbaru.main sebagai versi, ini mungkin merusak alur kerja Anda setelah rilis besar karena ada perubahan yang dapat mengganggu.v1 atau versi 1.xy , Anda harus beralih ke v2 karena v1 tidak didukung lagi. setup-php merupakan karya turunan dari logo php.net dan dilisensikan dibawah Lisensi CC BY-SA 4.0. Kontribusi dipersilahkan!
Kontributor setup-php dan proyek terkait lainnya
setup-php .Banyak pengguna dan organisasi mendukung setup-php melalui GitHub Sponsors.
Perusahaan-perusahaan ini dengan murah hati menyediakan setup-php produk dan layanan mereka untuk membantu pengembangan proyek ini.