Eine alte PHP-Version ist langsamer und bekommt, sobald der Sicherheitssupport endet, keine Korrekturen mehr für Probleme, die öffentlich bekannt sind. Der Umstieg ist meist schmerzlos; das Risiko kommt vom Wechseln ohne Prüfung, und die Prüfung dauert zehn Minuten.

Zuerst herausfinden, was bricht

composer require --dev php-parallel-lint/php-parallel-lint
vendor/bin/parallel-lint --exclude vendor .

Das liest jede Datei gegen die laufende Version ein und nennt alles, was nicht kompiliert. Verhaltensänderungen fängt es nicht, die syntaktischen schon - und das sind die meisten.

An einer Kopie testen

  1. Die Website auf eine Staging-Subdomain kopieren
  2. DIESE auf die neue Version umstellen — In EGPNL, je Website.
  3. Fehler nur im Staging einschalten — display_errors dort, und nie im Livebetrieb.
  4. Die Wege abgehen, auf die es ankommt — Anmelden, ein Formular abschicken, bezahlen, das Cron-Skript von Hand laufen lassen.

Was meistens bricht

  • Ein verwaistes Plugin oder eine verwaiste Bibliothek, die etwas benutzt, das vor Jahren entfernt wurde.
  • null übergeben, wo ein String erwartet wird - seit 8.1 eine Deprecation, die im Log Lärm macht statt einen Fehler zu werfen, aber sehr viel Lärm.
  • Eine Erweiterung, die für die neue Version nicht installiert ist - jede Version hat ihren eigenen Satz, und das ist die häufigste Überraschung.
php -m   # under the new version, compare against the old

Zurück

Die Version im Panel zurückzustellen geht sofort und ändert sonst nichts, der schlimmste Fall sind also ein paar Minuten. Genau das macht den Versuch billig.

Sehen Sie nach dem Wechsel ins Log, nicht nur auf die Seiten. Eine Deprecation schreibt bei jeder Anfrage und kann an einem Tag eine Platte füllen, obwohl nichts kaputt aussieht.
Gehen Sie eine Version nach der anderen. Von 7.4 auf 8.3 in einem Sprung bringt Ihnen alle Änderungen auf einmal, ohne dass sich sagen ließe, welche was zerlegt hat.