Novější PHP je rychlejší a bezpečnější, ale starší kód na něm nemusí fungovat. Přechod zvládnete bez výpadku, když ho připravíte a nejdřív vyzkoušíte stranou od ostrého webu.
Postup
- Zazálohujte web: soubory přes FTP a databázi exportem, viz Import a export databáze v phpMyAdmin.
- Aktualizujte aplikaci: jádro systému, šablonu i všechny pluginy na nejnovější verze. U WordPressu viz Aktualizace a zálohování. U doplňků, které autor už nevyvíjí, hledejte náhradu.
- Vyzkoušejte kopii webu na subdoméně. Vytvořte subdoménu (Vytvoření subdomény), nahrajte tam kopii webu i databáze a nastavte pro ni novou verzi PHP.
- Projděte klíčové funkce: úvodní stranu, formuláře, přihlášení, košík a objednávku, administraci.
- Přepněte ostrý web, nejlépe mimo největší provoz, a znovu ho prohlédněte.
- Sledujte chyby ještě několik dní: Chyby PHP a ladění.
- Kdyby něco nešlo, vraťte předchozí verzi v administraci, viz Výběr verze PHP.
Co se v novějších verzích změnilo
| Funkce mysql_* | odstraněny v PHP 7. Nahrazují je rozšíření mysqli a PDO. Starý kód je potřeba přepsat. |
| create_function(), each() | odstraněny v PHP 8.0. |
| Dynamické vlastnosti tříd | od PHP 8.2 zastaralé a hlásí upozornění „Deprecated“. Web funguje, ale kód by se měl opravit. |
| utf8_encode(), utf8_decode() | zastaralé od PHP 8.2. |
| Přísnější kontroly typů | od PHP 8.0 skončí fatální chybou i věci, které dřív prošly jen s varováním. |
Hlášky Deprecated nejsou chyba
Upozornění Deprecated znamená, že kód používá něco, co zmizí v budoucí verzi. Web funguje dál. Na veřejném webu je ale nechcete zobrazovat návštěvníkům. Zobrazování chyb vypněte a hlášky si ukládejte do logu (viz Chyby PHP a ladění).
Když nemáte vývojáře
Pokud web provozuje starý systém, který nikdo nespravuje, zvažte jeho modernizaci. Starší verze PHP už nejsou k dispozici, a navíc s sebou nesou bezpečnostní riziko. Rádi vám poradíme, napište nám.