Актуальная ветка и цель
На дату проверки PHP 8.5 находится в активной поддержке до конца 2027 года и получает security support до конца 2029 года. PHP 8.4 остаётся активно поддерживаемым до конца 2026 года. Эти даты сверяются перед планированием, потому что они являются внешним фактом.
Pulse сохраняет минимальную платформу 8.4, пока production не обновлён. Новые фрагменты 8.5 изолированы в ветке и не попадают в исполняемый код WebAssembly сайта, который работает на PHP 8.4.
Путь миграции
Инвентаризация платформы
composer show --platform и check-platform-reqs показывают PHP и ext-* требования. Отдельно фиксируются SAPI, ini, FPM, OPcache, драйвер базы и системные библиотеки. Composer config.platform полезен для разрешения зависимостей, но не устанавливает runtime и способен скрыть отсутствие реального расширения без финальной проверки.
Матрица зависимостей включает приложение, dev tools и production extensions. Заброшенный пакет не прикрывается игнорированием platform requirement: его заменяют или принимают риск явно.
Что проверять в PHP 8.5
Migration guide перечисляет несовместимости и deprecations: неканонические cast-имена, backtick alias для shell_exec, устаревшие __sleep/__wakeup и другие изменения. E_ALL запускается в CI, а каждое предупреждение получает владельца и срок.
Новые URI API, pipe operator, clone with и NoDiscard принимаются только там, где улучшают контракт. Обновление не обязано переписывать весь код ради демонстрации синтаксиса.
Артефакт, canary и rollback
CI выполняет composer install по lock, platform checks, static analysis, unit и integration tests на 8.4 и 8.5, затем собирает неизменяемый артефакт. Production не запускает composer update.
Canary получает малую долю запросов и сравнивает error rate, latency, memory и бизнес-исходы. Rollback возвращает предыдущий runtime и артефакт, но схема и форматы данных обязаны оставаться совместимыми. Репетиция проводится до релиза.
Итоговый проект
Соберите Pulse целиком: CLI и HTTP adapters, typed Event, streaming NDJSON, bounded collections, atomic reports, PDO batch+cursor, HMAC export, localized view, worker и observability. Для каждого решения приложите отрицательный тест и эксплуатационный сигнал.
- Ни один пользовательский путь не include/require.
- Каждый внешний формат версионирован.
- Rollback выполнен в тестовом окружении.
Закрепите материал
Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.
Перелинковка со справочником
Проверка актуальности
- php.nethttps://www.php.net/supported-versions.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/releases/8.5/en.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- php.nethttps://www.php.net/manual/en/migration85.phpПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- getcomposer.orghttps://getcomposer.org/doc/articles/composer-platform-dependencies.mdПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- getcomposer.orghttps://getcomposer.org/doc/03-cli.mdПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
Текст и схемы созданы для этого самоучителя без воспроизведения страниц, иллюстраций и листингов приложенной книги. Проверено: .