hostprofi.ru
Подобрать хостинг
Термин·буква P

PHP 8.3

краткое определение

PHP 8.3 — версия языка PHP, выпущенная 23 ноября 2023 года. Вводит типизированные константы классов, readonly-свойства в анонимных классах, #[\Override] атрибут, улучшения работы с DateTime, глубокое клонирование readonly-свойств и ряд оптимизаций производительности.

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.32023Типизированные константы, #[Override]До 2026
PHP 8.22022Readonly классы, Disjunctive Normal Form TypesДо 2025
PHP 8.12021Enums, Fibers, readonly свойстваSecurity до 2025
PHP 8.02020JIT, Named arguments, Match, Nullsafe ?->EOL
PHP 7.42019Typed properties, arrow functionsEOL

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.

Другие термины