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

PHP 7.4

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

PHP 7.4 — версия языка программирования PHP, выпущенная 28 ноября 2019 года. Последний релиз ветки PHP 7, достиг EOL 28 ноября 2022 года. Ввёл типизированные свойства классов, стрелочные функции, spread-оператор и предварительную загрузку opcache.

PHP 7.4 — шестой и последний минорный релиз ветки PHP 7, вышедший 28 ноября 2019 года. Поддержка активными исправлениями завершилась 28 ноября 2021 года, полная поддержка (только security fixes) — 28 ноября 2022 года (EOL). На хостингах, поддерживающих только PHP 7.4, код не получает патчей безопасности — это существенный риск.

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

Типизированные свойства (Typed Properties 2.0) — объявление типа напрямую в свойстве класса:

class User {
    public int $id;
    public string $name;
    public ?Address $address = null;
}

Стрелочные функции (Arrow Functions) — короткий синтаксис для анонимных функций с автоматическим захватом переменных из внешней области:

$multiplier = 3;
$result = array_map(fn($n) => $n * $multiplier, [1, 2, 3]);

Предварительная загрузка (Preloading) — OPcache может загружать PHP-файлы в память при старте процесса, исключив их компиляцию при каждом запросе. Ускоряет фреймворки на 30–50%.

Spread-оператор в массивах: $merged = [...$arr1, ...$arr2];

История PHP 7.x

PHP 7.0 выпущен 3 декабря 2015 года — принёс двукратное ускорение за счёт новой виртуальной машины Zend Engine 3.0 (PHPNG). PHP 7.1 (2016), 7.2 (2017), 7.3 (2018) добавляли улучшения. PHP 7.4 (2019) — финальный перед PHP 8.0. Ветка PHP 7 полностью завершена.

Связь с хостингом

PHP 7.4 по-прежнему встречается на хостингах как вариант выбора из-за совместимости со старыми плагинами WordPress и модулями 1С-Битрикс. Однако EOL означает отсутствие патчей безопасности — рекомендуется переход на PHP 8.1 или 8.2. Смена версии PHP на хостинге занимает 1 минуту, но может сломать устаревший код (например, removed function create_function() в PHP 8.0). Тестируйте перед переключением на production.

Жизненный цикл PHP-запроса

Apache/Nginx → PHP-FPM (FastCGI Process Manager) → PHP-worker → выполнение скрипта → ответ. PHP-FPM управляет пулом процессов: pm.max_children (максимум воркеров), pm.start_servers, pm.min_spare_servers. Для WordPress с 50 000 посетителей/день — pm.max_children = 20–40.

Версии PHP и совместимость

PHP 7.4 — EOL в ноябре 2022. PHP 8.0 — JIT-компилятор (+10–30% в CPU-intensive задачах). PHP 8.1 — Fibers (корутины), Enums. PHP 8.2 — Readonly Classes. PHP 8.3 (2023) — типизированные константы класса. Для нового проекта — минимум PHP 8.1. Проверка версии: php -v.

PHP в хостинге

PHP-FPM с OPCache — стандарт на VPS. OPCache кэширует скомпилированный байт-код: без него каждый запрос компилирует файлы. opcache.memory_consumption=256 (МБ), opcache.max_accelerated_files=20000 — для больших WordPress-сайтов.

PHP-FPM Pool Configuration

Несколько сайтов — несколько pool: /etc/php/8.1/fpm/pool.d/site1.conf. Разные пользователи, разные лимиты памяти. pm.max_children на pool рассчитывается: доступная RAM / средняя память PHP-процесса. memory_get_peak_usage() в коде покажет пик. Для WordPress: 64–128 МБ на процесс.

Xdebug для профилирования PHP

Xdebug 3: XDEBUG_MODE=profile. Вывод cachegrind-файлов. KCacheGrind или QCacheGrind для визуализации. Blackfire.io — managed PHP profiler с flame graphs. Тони дорогих функций: file_get_contents, serialize/unserialize, regex. SPX — лёгкий альтернатив Xdebug без IDE.

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