Viele Unternehmen betreiben PHP-Anwendungen, die vor Jahren gebaut wurden und seitdem „einfach laufen“. Läuft die PHP-Version aus, gibt es keine Sicherheitsupdates mehr. So gelingt der Umstieg auf eine aktuelle Version Schritt für Schritt.
Warum die PHP-Version wichtig ist
Jede PHP-Version erhält nur für einen festen Zeitraum Sicherheitsupdates. Danach werden neu entdeckte Lücken nicht mehr geschlossen. Die offiziellen Zeiträume stehen auf php.net.
| Version | Sicherheitsupdates bis |
|---|---|
| PHP 7.4 | 28.11.2022 (abgelaufen) |
| PHP 8.0 | 26.11.2023 (abgelaufen) |
| PHP 8.1 | 31.12.2025 (abgelaufen) |
| PHP 8.2 | 31.12.2026 |
| PHP 8.3 | 31.12.2027 |
| PHP 8.4 | 31.12.2028 |
| PHP 8.5 | 31.12.2029 |
Stand Oktober 2026. Maßgeblich ist die aktuelle Übersicht auf php.net.
Schritt 1: Bestand aufnehmen
Welche PHP-Version läuft? Werden Abhängigkeiten mit Composer verwaltet oder liegen Bibliotheken als Kopie im Projekt? Welche Erweiterungen und Datenbanken werden genutzt, und wo läuft die Anwendung? Diese Fragen bestimmen den Aufwand stärker als die reine Codemenge.
Schritt 2: Ein Sicherheitsnetz aus Tests
Bevor Code geändert wird, sollten automatisierte Tests das heutige Verhalten festhalten, sogenannte Charakterisierungstests. Sie prüfen nicht, ob das Verhalten richtig ist, sondern ob es nach der Umstellung gleich bleibt.
Schritt 3: Werkzeuge nutzen
- Statische Analyse mit PHPStan findet Typfehler und veraltete Aufrufe, ohne den Code auszuführen.
- Rector kann viele Anpassungen für neue PHP-Versionen automatisch vornehmen.
- Composer macht Abhängigkeiten nachvollziehbar und aktualisierbar.
Schritt 4: In Etappen aktualisieren
Statt direkt von PHP 7.4 auf die neueste Version zu springen, ist ein Weg über Zwischenversionen oft übersichtlicher. Typische Stolpersteine sind:
- Ab PHP 8.0: strengere Typprüfung bei internen Funktionen und geänderte Vergleiche zwischen Zahlen und Zeichenketten.
- Ab PHP 8.1: Warnungen, wenn
nullan interne Funktionen übergeben wird, die eine Zeichenkette erwarten. - Ab PHP 8.2: Dynamisch angelegte Eigenschaften in Klassen sind veraltet.
Schritt 5: Ausliefern ohne Risiko
Ein automatisierter Build mit Tests und ein Deployment, das bei Fehlern die alte Version weiterlaufen lässt, machen künftige Updates zur Routine statt zum Projekt.
Modernisieren oder neu bauen?
Ist die fachliche Logik solide und nur die Technik veraltet, lohnt sich meist die schrittweise Modernisierung. Passt die Anwendung fachlich nicht mehr zu den heutigen Abläufen, kann eine Neuentwicklung sinnvoller sein. Eine Bestandsaufnahme liefert die Grundlage für diese Entscheidung.
Quellen
Fragen zu diesem Thema?
Wir ordnen ein, was das konkret für Ihr Produkt oder Ihren Prozess bedeutet.
Dieser Beitrag ist eine technische Einordnung und ersetzt keine Rechtsberatung. Maßgeblich sind die Primärquellen.