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

PHP 8.1

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

PHP 8.1 — мажорный релиз языка PHP (ноябрь 2021), добавивший перечисления (Enum), файберы (Fiber), пересечения типов, readonly-свойства и улучшения производительности JIT-компилятора.

PHP 8.1 — минорный релиз ветки PHP 8.x, вышедший 25 ноября 2021 года. Срок активной поддержки — до ноября 2023 года, безопасностных обновлений — до ноября 2025 года. PHP 8.1 продолжил курс PHP 8.0 (2020) на типобезопасность: добавил enums, fibers, readonly-свойства и интерсекционные типы. CMS Drupal 10 требует PHP 8.1 как минимум.

Ключевые нововведения PHP 8.1

  • Enums (перечисления): enum Status { case Active; case Inactive; } — замена константам и магическим строкам. Поддерживают методы и интерфейсы. Backed enums: enum Status: string { case Active = 'active'; }.
  • Fibers: примитив для кооперативной многозадачности. Fiber — изолированный стек выполнения, который можно приостановить и возобновить. Основа для async-библиотек (AmPHP, ReactPHP). Не заменяет goroutines, но даёт управление потоком выполнения.
  • Readonly properties: class User { public function __construct(public readonly string $name) {} }. После инициализации в конструкторе изменить нельзя.
  • Intersection types: function process(Iterator&Countable $collection) — аргумент должен реализовывать оба интерфейса.
  • never return type: для функций, которые никогда не возвращают значение (бросают исключение или вызывают exit()).
  • array_is_list(), fsync(), fdatasync() — новые встроенные функции.

История

PHP 8.0 вышел в ноябре 2020 года с JIT-компилятором, named arguments и match-выражениями. PHP 8.1 (ноябрь 2021) добавил языковые фичи без JIT-изменений. PHP 8.2 (декабрь 2022) добавил readonly-классы и DNF-типы. PHP 8.3 (ноябрь 2023) — типизированные константы классов. PHP 8.4 (ноябрь 2024) — property hooks, asymmetric visibility. Ветка PHP 7.4 получила последнее обновление в ноябре 2022 года и полностью устарела.

Совместимость с хостингом

Большинство современных хостингов поддерживают переключение версии PHP в панели управления. PHP 8.1 поддерживают: cPanel 11.98+, Plesk 17.8+, ISPmanager 6.52+, DirectAdmin. На VPS PHP 8.1 устанавливается из репозитория Ondřej Surý (PPA для Ubuntu/Debian): apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-mbstring. PHP-FPM 8.1 запускается как отдельный сервис: systemctl start php8.1-fpm.

PHP 8.1 и совместимость с CMS

WordPress 6.x официально поддерживает PHP 8.1 с WP 6.1 (2022), но некоторые плагины требуют проверки совместимости. Drupal 10 требует PHP 8.1+ как минимум. Laravel 10+ требует PHP 8.1+. Symfony 6.x требует PHP 8.1+. Перед обновлением PHP на боевом сервере проверяй совместимость всех плагинов и зависимостей через инструменты типа PHP Compatibility Checker.

На что обращать внимание

PHP 8.1 ввёл deprecation-предупреждения для ряда функций: strftime(), mhash*(). При обновлении с PHP 7.4 или 8.0 включай error_reporting = E_ALL в dev-среде — часть устаревшего кода генерирует notices. PHP-FPM 8.1 поддерживает dynamic и static режимы пулов: для сайтов с непредсказуемым трафиком используй pm = dynamic; для стабильной нагрузки — pm = static с фиксированным числом воркеров.

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