Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Senior PHP 8+

Як безпечно оновити застосунок на нову версію PHP?

Оновлення PHP - це не зміна однієї цифри в Dockerfile. Ламаються зазвичай не нові можливості, а зміни поведінки й залежності.

1. Прочитати посібник з міграції на php.net для кожної версії між поточною й цільовою: несумісні зміни, застаріле, змінені функції.

2. Перевірити залежності:

composer why-not php 8.5
composer outdated --direct

Пакет, що не підтримує нову версію PHP, - найчастіший блокер. Оновити, знайти заміну чи дочекатися релізу.

3. Автоматичні інструменти:

  • Rector - автоматично переписує код під нову версію (набори правил UpgradeToPhp84 тощо) і прибирає застарілі конструкції.
  • PHPStan/Psalm з налаштованою цільовою версією PHP.
  • PHPCompatibility для PHP_CodeSniffer - знаходить несумісний код.

4. Тести на обох версіях. Матриця в CI: поточна й нова версія PHP. Поки обидві зелені, можна оновлюватися поступово.

5. Застарілі попередження - як помилки в тестах. Deprecation сьогодні - помилка в наступній мажорній версії. PHPUnit/Pest можна налаштувати так, щоб E_DEPRECATED валили тест.

6. Поступове розгортання: спершу стейджинг, потім частина продакшн-трафіку (канарка), моніторинг помилок і швидкодії, і лише потім усе.

Типові проблеми при оновленні:

  • PHP 8.0: порівняння чисел з рядками, TypeError замість попереджень у вбудованих функціях.
  • PHP 8.1: передача null у параметри вбудованих функцій, що не приймають null (deprecated).
  • PHP 8.2: динамічні властивості й інтерполяція ${var} - deprecated.
  • PHP 8.4: неявно nullable параметри - deprecated.

Не відкладати надовго: кожна версія PHP отримує виправлення безпеки обмежений час. Оновлюватися щороку на одну версію значно легше, ніж стрибати через три.

Докладніше в документації: Міграція на PHP 8.4

Перевір себе

20 випадкових питань за спробу, після завершення - розбір кожної помилки

Схожі питання