PHP 8.0 · Ohne Sicherheitsupdates seit 26.11.2023

PHP 8.0: seit November 2023 ohne Sicherheitsupdates. Der kleine Sprung auf 8.4, der trotzdem oft liegen bleibt

PHP 8.0 war der große Versionssprung mit JIT, Union Types und strengeren Typ-Vergleichen, und es ist seit dem 26. November 2023 ohne Sicherheitsupdates. Wer die Migration auf 8.0 geschafft hat, hat das Schwerste hinter sich. Was auf dem Weg zu 8.4 noch kommt und warum er nicht liegen bleiben sollte.

Erschienen
26.11.2020
Aktiver Support bis
26.11.2022
Sicherheitsupdates bis
26.11.2023
Letztes Release
8.0.30
Empfohlenes Ziel
PHP 8.4

Termine: php.net, Supported Versions.

PHP 8.0 erschien im November 2020 und war der größte Versionssprung seit 7.0: Union Types, Named Arguments, Attribute, match, der JIT-Compiler, und vor allem die strengeren Typ-Vergleiche, die so viele 7.x-Anwendungen zum Stolpern brachten. Seit dem 26. November 2023 gibt es keine Sicherheitsupdates mehr; das letzte Release war 8.0.30.

Wo PHP 8.0 heute steht

Drei Jahre ohne Pflege. Die beiden kritischen Lücken vom 21. Oktober 2026 wurden für 8.0 nicht geschlossen; der offizielle Fix gab es nur ab 8.2. Hoster haben 8.0 vielfach aus dem Angebot genommen oder stellen automatisch auf 8.1 oder 8.2 um, was mit altem Code eigene Überraschungen bringt.

Die typische 8.0-Anwendung hat 2021 oder 2022 eine aufwändige Migration hinter sich gebracht und ist dann stehengeblieben. Frameworks dieser Zeit: Laravel 8 und 9, Symfony 5.4, TYPO3 11, Shopware 6.4. Mehrere davon unterstützen 8.4 nicht, und das ist meist der eigentliche Grund, warum das Upgrade liegt.

Was beim Upgrade von 8.0 auf PHP 8.4 bricht

Die Typ-Umstellung ist geschafft; es bleiben die Änderungen von 8.1 bis 8.4:

  • mysqli wirft Ausnahmen seit 8.1 (Standard ist jetzt der strikte Fehlermodus). Code, der auf false prüft, bekommt unbehandelte Ausnahmen. PDO verhält sich seit 8.0 schon so.
  • null an interne Funktionen mit nicht nullbaren Parametern ist seit 8.1 veraltet. trim(null), strlen(null), str_replace() mit null-Betreff. In Formular-Code häufig, mechanisch zu beheben.
  • Serializable ohne __serialize/__unserialize ist seit 8.1 veraltet; betrifft Session- und Cache-Klassen.
  • strftime(), gmstrftime(), date_sunrise() und FILTER_SANITIZE_STRING sind seit 8.1 veraltet.
  • Dynamische Eigenschaften sind seit 8.2 veraltet: Werte, die an $this->irgendwas gehängt werden, ohne deklariert zu sein. In alten Modellklassen und Plugins häufig; der Ausweg ist eine Deklaration oder #[\AllowDynamicProperties].
  • ${var}-Interpolation in Zeichenketten und utf8_encode/utf8_decode sind seit 8.2 veraltet.
  • strtolower/strtoupper sind seit 8.2 nicht mehr von der Locale abhängig. Code, der auf setlocale() für Umlaute setzte, verhält sich anders.
  • get_class() ohne Argument ist seit 8.3 veraltet; unserialize() meldet Fehler lauter.
  • Implizit nullbare Parameter (Type $x = null statt ?Type $x = null) sind seit 8.4 veraltet, E_STRICT ist entfernt, round() rundet in Grenzfällen anders.

Was sich zwischen 8.0, 8.1, 8.2 und 8.3 jeweils geändert hat und was 8.4 Neues bringt, steht in eigenen Beiträgen.

Der Weg von 8.0 auf PHP 8.4

  1. Kurz-Check oder Befund: composer install unter 8.4 zeigt den Blocker in Minuten. Wenn keiner da ist, reicht oft der Kurz-Check, um den Aufwand einzuordnen.
  2. Framework zuerst, falls es 8.4 nicht unterstützt: Symfony 4 auf 6, Laravel in Etappen.
  3. Deprecations beheben, mit Rector automatisiert, Rest von Hand.
  4. Testsuite unter 8.4, dann umschalten mit Rückweg.

Häufig Tage, nicht Wochen. Die Ausnahme ist ein Framework-Upgrade über mehrere Hauptversionen.

Für wen das nicht passt

Eine Anwendung, deren Framework keinen Pfad zu 8.4 hat, steht vor der Framework-Frage, nicht vor der PHP-Frage. Das sortieren wir im Befund.

Kosten

Die Pakete für den Weg von PHP 8.0 auf PHP 8.4

Ab-Preise netto. Verbindlich wird es mit dem Festpreis nach dem Befund, und der Befund wird auf jedes Folgepaket angerechnet.

PaketPreisDauerFür wen
Kurz-CheckEinstieg · kostenlos Preiskostenlos Dauer30 Minuten Sie wissen nicht, wie schlimm es wirklich um Ihre Anwendung steht, und wollen erst einmal eine Einordnung.
BefundAnalyse Preisab 2.980 € Dauer2–3 Werktage Sie brauchen eine belastbare Grundlage für eine Entscheidung oder ein Budget – keine Schätzung aus dem Bauch.
Minimal-MigrationUmsetzung · das Nötigste Preisab 9.800 € Dauer2–6 Wochen Ihr Hoster schaltet PHP 7 ab, ein Audit verlangt eine unterstützte Version – und Sie brauchen das schnell, nicht schön.

Fragen

Was zu PHP 8.0 meistens gefragt wird

Wir sind 2021 mit viel Aufwand auf PHP 8.0 gegangen. Warum schon wieder?

Weil 8.0 drei Jahre Sicherheitsupdates bekam und die seit November 2023 vorbei sind. Der Trost: Die schwere Arbeit war die Typ-Umstellung von 7.x auf 8.0. Von 8.0 auf 8.4 sind es Deprecations und wenige Verhaltensänderungen, meist Tage, nicht Wochen.

Mein Framework unterstützt PHP 8.4 noch nicht. Was dann?

Dann ist das Framework der Blocker, nicht PHP. Laravel 8 und Symfony 5.x laufen nicht offiziell auf 8.4; Laravel 11 und Symfony 6.4 oder 7.x schon. Das Framework-Upgrade ist dann Teil des Projekts. Was das bei Symfony oder Laravel bedeutet, steht in den jeweiligen Beiträgen.

Sollen wir auf 8.4 oder gleich auf 8.5?

Für bestehende Anwendungen 8.4: ein Jahr länger aktiv gepflegt als 8.3, breit von Hostern angeboten, alle wichtigen Bibliotheken unterstützen es. 8.5 ist das Ziel, wenn ohnehin neues Hosting aufgesetzt wird. Beide bekommen Sicherheitsupdates bis mindestens Ende 2028.

Nächster Schritt: Befund (ab 2.980 €)

Drei kurze Schritte im Formular, dann melden wir uns innerhalb eines Werktags. Wer noch nicht so weit ist, nimmt den kostenlosen Kurz-Check.

Befund anfragen