PHP 8.3 — минорный релиз ветки PHP 8, выпущенный 23 ноября 2023 года. Активная поддержка (active support) — до ноября 2025 года, security support — до ноября 2026 года. Предыдущая ветка PHP 8.2 получает security support до декабря 2025 года.
Ключевые нововведения PHP 8.3
Типизированные константы классов — ранее константы не имели типов, теперь:
class Config {
const string VERSION = '1.0.0';
const int MAX_CONNECTIONS = 100;
}
Атрибут #[\Override] — явная пометка метода как переопределяющего родительский. PHP выбросит ошибку, если метод с таким атрибутом не переопределяет ничего в родительском классе.
Динамическое обращение к константам:
$name = 'VERSION';
echo Config::{$name}; // '1.0.0'
Readonly-свойства в анонимных классах — можно использовать readonly в анонимных классах.
json_validate() — новая функция для валидации JSON без декодирования.
Улучшения в Fibers — расширенный API для корутин.
Рандомизация — новые методы в \Random\Randomizer.
Сравнение производительности
PHP 8.3 в тестах WordPress быстрее PHP 8.2 на 5-10%, PHP 7.4 — на 60-80%. Большинство современных shared hosting-провайдеров поддерживают PHP 8.3 наряду с 8.1 и 8.2. JIT-компилятор (Just-In-Time), введённый в PHP 8.0, оказал меньше влияния на традиционные web workloads (они I/O bound, а не CPU bound), но существенно ускорил CPU-intensive задачи.
PHP 8.x vs PHP 7.x vs PHP 5.x
| Версия | Выход | Ключевые фичи | Поддержка |
|---|---|---|---|
| PHP 8.3 | 2023 | Типизированные константы, #[Override] | До 2026 |
| PHP 8.2 | 2022 | Readonly классы, Disjunctive Normal Form Types | До 2025 |
| PHP 8.1 | 2021 | Enums, Fibers, readonly свойства | Security до 2025 |
| PHP 8.0 | 2020 | JIT, Named arguments, Match, Nullsafe ?-> | EOL |
| PHP 7.4 | 2019 | Typed properties, arrow functions | EOL |
PHP 8.3: новые функции и применение
PHP 8.3 (ноябрь 2023): типизированные константы классов (const TYPE NAME = value), readonly свойства в анонимных классах, #[Override] атрибут для явной пометки переопределения методов. json_validate() — проверка валидности JSON без парсинга (в 2× быстрее json_decode + проверка). str_pad() теперь корректно работает с мультибайтными строками (mb_str_pad()).
Производительность PHP 8.3 vs 8.2: прирост 2-5% на реальных нагрузках. PHP 8.x vs PHP 7.4: прирост 20-40% благодаря JIT, улучшенному named arguments, union types. Совместимость: большинство современных фреймворков (Laravel 10+, Symfony 6.4+) поддерживают PHP 8.3. Проверка совместимости устаревшего кода: php-compatibility-checker (PHPCompatibilityWP) сканирует на устаревшие функции. PHP 8.3 — активная поддержка до ноября 2025 года.
На что обращать внимание
Переход с PHP 7.x на 8.3 на VPS требует аудита устаревших функций: в PHP 8.0 удалены create_function(), некоторые фильтры, в 8.1 строгие типы стали более требовательны. Проверить совместимость: инструмент Rector для автоматического апгрейда кода, phpcs с PHP_CodeSniffer. Для WordPress: PHP 8.2-8.3 поддерживаются с WordPress 6.x, но часть плагинов требует обновления.
PHP 8.3 в хостинге
Для обновления PHP до 8.3 в Ubuntu/Debian используйте репозиторий Ondrej Sury: add-apt-repository ppa:ondrej/php && apt install php8.3-fpm. На nginx переключите FastCGI pass на новый сокет PHP-FPM: fastcgi_pass unix:/run/php/php8.3-fpm.sock. В Docker: замените образ на php:8.3-fpm в Dockerfile. При работе с MySQL убедитесь, что используется расширение mysqli или PDO_mysql, а не устаревший mysql_* API.