PHP 7.2 · Ohne Sicherheitsupdates seit 30.11.2020

PHP 7.2: seit November 2020 ohne Sicherheitsupdates. Was ein Upgrade auf PHP 8 bricht und wie es abläuft

PHP 7.2 ist die Version vieler Shopware-5-, TYPO3-9- und Laravel-5.6-Installationen und seit dem 30. November 2020 ohne Sicherheitsupdates. Was beim Upgrade auf PHP 8.4 bricht, warum der Sprung kleiner ist als von 7.0, und wie wir vorgehen.

Erschienen
30.11.2017
Aktiver Support bis
30.11.2019
Sicherheitsupdates bis
30.11.2020
Letztes Release
7.2.34
Empfohlenes Ziel
PHP 8.4

Termine: php.net, Supported Versions.

PHP 7.2 erschien im November 2017 und war drei Jahre lang die Arbeitsversion vieler Shops und Agentur-Projekte. Seit dem 30. November 2020 gibt es keine Sicherheitsupdates mehr; das letzte Release war 7.2.34. Mit 7.2 verschwand mcrypt aus dem Kern, und each() sowie create_function() wurden als veraltet markiert. Wer das Log gelesen hat, kennt seine Baustellen für PHP 8 bereits.

Wo PHP 7.2 heute steht

Sechs Jahre ohne Pflege. Alle seit Ende 2020 gefundenen Lücken im Interpreter sind offen, auch die beiden kritischen vom 21. Oktober 2026, für die es nur Fixes ab 8.2 gab. Viele Hoster haben 7.2 bereits abgeschaltet; die verbliebenen Installationen laufen auf eigenen Servern oder bei Hostern mit kostenpflichtigem Weiterbetrieb.

Typische Stacks: Shopware 5.4 bis 5.6, Magento 2.2 und 2.3, TYPO3 9 LTS, Drupal 8, Laravel 5.6 bis 5.8, Symfony 4.0 bis 4.3. Mehrere davon haben eigene Support-Enden, die für den Weg wichtiger sind als die PHP-Version: Für Shopware 5, Magento 1 und TYPO3 in alten LTS-Versionen gibt es jeweils eine eigene Seite mit den Optionen.

Was beim Upgrade von 7.2 auf PHP 8 bricht

  • each(), create_function(), __autoload() sind seit 8.0 entfernt. Unter 7.2 melden sie sich als Deprecation, wenn E_DEPRECATED im Log landet. Oft ist genau das abgeschaltet.
  • Geschweifte Klammern für Offsets sind seit 8.0 ein Syntaxfehler. $str{0} muss zu $str[0] werden.
  • Vergleiche zwischen Text und Zahl haben sich mit 8.0 geändert. 0 == "abc" ist falsch, "1" == "01" bleibt wahr, "abc" == 0 ist falsch. Formularprüfungen und Statusvergleiche kippen leise.
  • Interne Funktionen werfen Fehler statt Warnungen. count() auf null, array_merge() mit einem Nicht-Array, strpos() mit falschem Typ: In 7.2 eine Warnung, in 8.4 ein Abbruch.
  • Verschachtelte Ternär-Operatoren ohne Klammern sind seit 8.0 nicht mehr erlaubt.
  • match ist seit 8.0 reserviert.
  • Ressourcen sind Objekte seit 8.0. Prüfungen mit is_resource() auf cURL- oder GD-Handles schlagen fehl.
  • PDO und mysqli melden Fehler als Ausnahme. PDO seit 8.0, mysqli seit 8.1. Code, der auf false als Rückgabewert prüft, bekommt stattdessen eine unbehandelte Ausnahme.
  • null an interne Funktionen ist seit 8.1 veraltet, dynamische Eigenschaften seit 8.2, implizit nullbare Parameter seit 8.4.

Die vollständige Liste steht unter PHP 8 Breaking Changes. Für die Suche im eigenen Code: Deprecated-Funktionen finden.

Der Weg von 7.2 auf PHP 8.4

  1. Befund auf einer Kopie. Dazu gehört bei 7.2 der Blick auf das System darunter: Shop, CMS oder Framework haben eigene Fristen.
  2. Sicherheitsnetz. Tests um Bestellung, Zahlung, Export, Login. Wie man Tests in Code ohne Tests einführt, steht im eigenen Beitrag.
  3. Abhängigkeiten aktualisieren. Composer-Abhängigkeiten auf PHP-8-fähige Stände bringen, Blocker ersetzen.
  4. Rector für das Mechanische, Handarbeit für Typ-Vergleiche, Fehlerbehandlung an der Datenbank und tote Bibliotheken.
  5. Umschalten in Etappen, mit Rückweg.

Für wen das nicht passt

Ein Shop, der in sechs Monaten auf ein anderes System wechselt, braucht bis dahin einen abgesicherten Weiterbetrieb, keine Migration. Was das heißt, steht auf der Seite zur jeweiligen Situation. Wenn die Anwendung dagegen bleiben soll, ist das PHP-Upgrade der erste Schritt, nicht der letzte.

Kosten

Die Pakete für den Weg von PHP 7.2 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
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.
Werkstatt-BereitschaftLaufend · Wartung & Notfall Preisab 980 €/Monat Dauerlaufend Sie haben niemanden im Haus, der das System betreut – oder wollen nach der Modernisierung nicht wieder zurückfallen.

Fragen

Was zu PHP 7.2 meistens gefragt wird

Unser Shop läuft auf Shopware 5 mit PHP 7.2. Hilft ein PHP-Upgrade überhaupt?

Es hilft gegen die Lücken im Interpreter, nicht gegen die im Shop-System. Shopware 5 ist seit Juli 2024 ohne Hersteller-Updates, und die späten 5.7-Versionen laufen auf PHP 8.1, das selbst ohne Updates ist. Die Frage ist deshalb nicht nur die PHP-Version, sondern der Weg des Shops. Dafür gibt es eine eigene Seite zu Shopware 5 am Support-Ende.

Was ist der Unterschied zum Upgrade von 7.0?

PHP 7.2 hat die meisten Entfernungen von 8.0 bereits als Deprecation angekündigt. Wer das Log unter 7.2 mit aktiviertem E_DEPRECATED liest, sieht die Stellen. Von 7.0 aus fehlt diese Vorwarnung. Der Umfang der Arbeit ist ähnlich, die Vorhersagbarkeit ist bei 7.2 besser.

Reicht es, im Hosting-Panel PHP 8.4 auszuwählen und zu schauen, was passiert?

Auf einer Kopie: ja, das ist ein guter erster Test. Auf der Produktion: nein. Die typische Erfahrung ist, dass die Startseite läuft und drei Wochen später auffällt, dass der Rechnungsexport seit der Umstellung leere Dateien schreibt. PHP 8 bricht an den Sonderfällen, die niemand beim Klicken durchs Menü trifft.

Nächster Schritt: Minimal-Migration (ab 9.800 €)

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

Minimal-Migration anfragen