Paul Schell

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

  1. Bestandsaufnahme: PHP-Version, benötigte Extensions, Composer-Abhängigkeiten, Tests und Hosting-Umgebung.
  2. Absichern: Tests für kritische Abläufe, statische Analyse (zum Beispiel mit PHPStan) und eine reproduzierbare Umgebung, etwa mit Docker.
  3. Automatisieren, was sich automatisieren lässt: Werkzeuge wie Rector nehmen mir einen Teil der mechanischen Umbauarbeit ab.
  4. Stufenweise migrieren: Ich gehe die PHP-Versionen nacheinander durch und prüfe nach jedem Schritt.
  5. 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

Weitere Leistungen