PHP-Migration auf eine aktuelle PHP-Version
Deine Anwendung läuft noch auf PHP 5 oder 7? Ich bringe sie Schritt für Schritt auf eine unterstützte PHP-8-Version, ohne sie neu zu schreiben.
Warum die PHP-Version wichtig ist
- Nicht mehr unterstützte Versionen bekommen keine Sicherheitsupdates.
- Aktuelle Bibliotheken und Frameworks setzen oft neuere PHP-Versionen voraus.
- Neuere Versionen sind in der Regel schneller und bringen Sprachfunktionen, die den Code sicherer machen.
- Hosting-Anbieter stellen alte Versionen irgendwann ab.
Welche PHP-Versionen aktuell unterstützt werden, zeigt php.net/supported-versions.php.
So gehe ich vor
- Bestandsaufnahme: PHP-Version, benötigte Extensions, Composer-Abhängigkeiten, Tests und Hosting-Umgebung.
- Absichern: Tests für kritische Abläufe, statische Analyse (zum Beispiel mit PHPStan) und eine reproduzierbare Umgebung, etwa mit Docker.
- Automatisieren, was sich automatisieren lässt: Werkzeuge wie Rector nehmen mir einen Teil der mechanischen Umbauarbeit ab.
- Stufenweise migrieren: Ich gehe die PHP-Versionen nacheinander durch und prüfe nach jedem Schritt.
- Abhängigkeiten anpassen: Bibliotheken aktualisieren oder ersetzen, wenn sie die neue Version nicht unterstützen.
Typische Stolpersteine
- Entfernte Funktionen, etwa die mysql_*-Funktionen (seit PHP 7.0) oder each() und create_function() (seit PHP 8.0)
- Strengere Typprüfungen und neue Warnungen, die bisher unbemerkte Fehler sichtbar machen
- Dynamisch angelegte Eigenschaften, die seit PHP 8.2 veraltet sind
- Alte Extensions und Bibliotheken ohne Unterstützung für neue PHP-Versionen
- Unterschiedliche PHP-Versionen auf Entwicklungs- und Produktivsystem
Für wen das passt
Für Symfony-Projekte und individuelle PHP-Anwendungen, die gewachsen sind und seit längerem nicht mehr angefasst wurden. Läuft zusätzlich ein veraltetes Symfony, kombiniere ich die Migration mit einem Symfony-Upgrade.
Häufige Fragen
Muss ich meine Anwendung neu schreiben lassen?
In der Regel nicht. Ziel ist, den vorhandenen Code auf eine aktuelle PHP-Version zu bringen und nur dort umzubauen, wo es nötig ist.
Kann ich direkt von PHP 5 auf PHP 8 springen?
Technisch ist das selten ratsam. Ich migriere in Stufen, weil sich Fehler so eingrenzen lassen. Wie viele Stufen nötig sind, hängt vom Code ab.
Was ist, wenn Bibliotheken PHP 8 nicht unterstützen?
Dann prüfen wir, ob es ein aktualisiertes Paket oder einen Ersatz gibt. In manchen Fällen kapsle ich die betroffene Stelle, bis sie ersetzt werden kann.
Wie lange dauert eine PHP-Migration?
Das hängt von Codemenge, Testabdeckung und Abhängigkeiten ab. Nach der Bestandsaufnahme gebe ich dir eine Einschätzung.
Aus dem Blog
Kritische PHP-Sicherheitslücke: jetzt auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 aktualisieren
Zwei kritische Lücken in PHP erlauben Remote Code Execution ohne Anmeldung. Wer betroffen ist, welche Versionen helfen und was bei PHP 8.1 und älter zu tun ist.
PHP und Symfony im Oktober 2026: Sicherheitsupdates, Support-Enden und was im November kommt
Der Monatsüberblick: drei Symfony-Sicherheitslücken, das Ende von PHP 8.2, PHP 8.6 und Symfony 8.2 im November und was das für bestehende Projekte bedeutet.