Матеріал розбирає підхід Ayesh Karunaratne до тестування першого Release Candidate PHP 8.3 і підготовки до релізу в листопаді 2023 року.
Що сталося: PHP 8.3 вийшов на етап RC1
У серпні 2023 з'явився перший кандидат у реліз PHP 8.3 — версія PHP 8.3.0RC1. Це означає, що функціональні зміни для 8.3 вже завершені: далі команда мови планує лише полірування та виправлення багів.
Автор відзначає конкретний графік:
- загальнодоступний реліз PHP 8.3.0 заплановано на 23 листопада 2023 року;
- до цієї дати вийде ще п'ять Release Candidate, кожні приблизно раз на два тижні;
- гілка
PHP-8.3вже виділена в репозиторії, аmasterготують до розробки PHP 8.4.
Для розробників це сигнал: вікно змін для 8.3 закрите, можна починати предметне тестування проєктів під нову гілку.
Де лежить вихідний код і як влаштовані гілки
Перший RC позначений у репозиторії php-src тегом PHP 8.3.0RC1. Одночасно створено стабілізаційну гілку:
PHP-8.3— з неї будуть збирати всі наступні RC і фінальний реліз 8.3.0;master— повертається до статусу «експериментального», там уже готують зміни для PHP 8.4, запланованого на 2024 рік.
Практично це означає, що багрепорти і патчі потрібно правильно націлювати:
- якщо ви тестуєте саме 8.3 — працюйте з гілкою
PHP-8.3чи з відповідним тегом RC; - якщо досліджуєте «майбутнє PHP» — беріть
master, але будьте готові до нестабільності.
Готові збірки для різних систем
Автор збирає в одному місці варіанти, як спробувати 8.3 RC1 без самостійної компіляції.
Windows: завантажити збірку з офіційного сайту
Для Windows доступні попередні збірки PHP 8.3 RC на windows.php.net/qa. Тут зручно брати:
- Thread Safe збірки для сценаріїв з Apache mod_php;
- Non Thread Safe для FastCGI (наприклад, з IIS чи PHP-FPM під Windows).
Базова схема тесту:
- Завантажити відповідний пакет для x86 чи x64 з windows.php.net/qa.
- Розпакувати до окремої теки (не поверх робочої версії PHP).
- Налаштувати тимчасовий
php.iniз мінімальним набором розширень. - Запустити тестовий вебсервер або CLI сценарії вашого застосунку.
Так ви ізолюєте RC від продуктивного середовища і зможете безпечно прогнати юніт- та інтеграційні тести.
Docker: використати готові образи
На Docker Hub уже доступні образи з тегами PHP 8.3.0 для тестування: docker.com/_/php.
Типовий підхід для команди, що працює через Docker:
- створити окрему гілку в репозиторії застосунку;
- оновити базовий образ у
Dockerfileна тег з 8.3.0 RC; - запустити CI-пайплайн, який уже є, але з новим образом;
- зібрати список попереджень, змін у поведінці, падінь тестів.
Цей метод не вимагає змін на хост-системі розробника чи сервері: усе відбувається усередині контейнера.
Linux: компіляція зі вихідних з готовими гайдами
PHP.Watch дає дві окремі інструкції для компіляції PHP, на які посилається автор:
У цих гайдах розписані залежності, типові прапорці конфігурації і порядок встановлення. Для RC1 достатньо підставити потрібний тег з php-src.
Компіляція корисна, якщо:
- вам потрібні специфічні модулі або конфігурація, яких немає у стандартних пакетах;
- ви готуєтеся підтримувати кілька мінорних версій паралельно на одному хості;
- потрібно зрозуміти, як новий PHP поводиться зі специфічними опціями збірки.
macOS: Homebrew tap shivammathur
Для macOS автор посилається на tap shivammathur/homebrew-php, де PHP 8.3 доступний через формулу [email protected].
Практична перевага tap у тому, що можна поставити кілька версій PHP поруч і перемикатися між ними, не чіпаючи системний PHP, який використовує, наприклад, інфраструктура або старі скрипти.
Як тестувати, не ризикуючи продуктивними системами
У матеріалі окремо наголошено: Release Candidate призначені тільки для тестування, а не для продуктивного використання.
Безпечна стратегія на основі описаного підходу:
- Ізоляція середовища. Встановити PHP 8.3 RC1 у окремий шлях, контейнер або віртуальну машину. Не замінювати ним робочий PHP.
- Повний набір тестів. Прогнати всі автоматизовані тести: юніт- , інтеграційні, E2E, плюс регресійні сценарії, де раніше вже ловили помилки.
- Перевірка залежностей. Окремо протестувати ключові розширення (як вбудовані, так і сторонні), фреймворки і бібліотеки, які активно використовуються у застосунку.
- Поступове оновлення. Коли вийде фінальний реліз, переходити поетапно: спочатку стейджинг, потім частина некритичних сервісів, і лише потім основне навантаження.
За такого підходу RC1 і наступні кандидати допомагають знайти несумісності ще до листопадового релізу, але не наражають продакшн на ризик.
Що означає графік з шістьма RC для розробників
План з п'ятьма додатковими RC після 8.3.0RC1 дає орієнтовний коридор у кілька місяців для зворотного зв'язку. Для практичної роботи це можна використати так:
- закласти в дорожню карту спринт або дві саме під тестування 8.3 і адаптацію коду;
- запланувати оновлення внутрішніх бібліотек і фреймворків після виходу 1-2 наступних RC, коли виправлять перші знайдені проблеми;
- відправляти багрепорти в офіційний трекер PHP на основі результатів своїх тестів.
Картина версій у репозиторії (виділена гілка PHP-8.3 і підготовка master до 8.4) показує, що зміни у самій мові йдуть паралельно з циклом стабілізації. Це додатковий аргумент регулярно тестувати свій код на нових версіях, не чекаючи моменту, коли оновлення стане вимушеним.

Джерело: Ayesh Karunaratne — PHP.Watch: новости