PHP 7.4 dosáhlo konce podpory v listopadu 2022. Od té chvíle nedostává ani bezpečnostní aktualizace. Pokud váš web pořád běží na PHP 7.4, riskujete bezpečnostní mezery a zaostáváte ve výkonu i v možnostech jazyka.

Co přináší PHP 8

Výrazně lepší výkon

PHP 8.x je 20–30 % rychlejší oproti 7.4 díky JIT kompilátoru a interním optimalizacím. Bez jakýchkoli změn kódu.

Nové jazykové vlastnosti

  • Named arguments — volání funkcí s pojmenovanými parametry
  • Constructor property promotion — kratší zápis konstruktorů
  • Match expression — moderní náhrada za switch
  • Readonly properties (8.1) — neměnné vlastnosti
  • Enums (8.1) — nativní enumerace
  • Typed class constants (8.3)

Bezpečnější a striktnější jazyk

PHP 8 je celkově přísnější — víc chyb se odhalí v době psaní kódu, ne až v produkci. To může být při migraci nepříjemné, ale dlouhodobě to znamená stabilnější kód.

Typické problémy při migraci

1. Implicitní konverze

PHP 8 nepřipouští tolik implicitních konverzí jako 7.x. Např. "abc" == 0 už není true.

2. Striktnější typy

Mnohé interní funkce teď vyhazují TypeError místo tichého selhání. Například strpos(null, "abc") v PHP 7.4 fungovalo, v PHP 8 vyhodí výjimku.

3. Odstraněné prvky

PHP 8 odstranilo některé staré konstrukce — magické __autoload(), real jako alias pro float atd. U starších projektů je třeba je refaktorovat.

Postup při migraci

  1. Audit kódu — statický analyzátor (PHPStan/Psalm) odhalí většinu problémů
  2. Aktualizace knihoven — kontrola závislostí přes Composer
  3. Test ve staging prostředí — nikdy nemigrujte přímo na produkci
  4. Postupné nasazení — nejprve 8.0, potom 8.1, 8.2, 8.3...
  5. Monitoring po nasazení — sledování chyb v Tracy/Sentry

Závěr

Migrace z PHP 7.4 není volitelná — je to bezpečnostní nutnost. U kvalitně napsaného kódu je to otázka dnů, u legacy projektů může být potřeba refaktor. Pokud potřebujete s migrací pomoct, umíme zajistit audit i samotnou migraci.