Von PHP 7 auf PHP 8 — Schritt für Schritt statt Sprung ins Kalte.
Viele Anwendungen laufen noch auf PHP 7 — teils auf Servern, die nie aktualisiert wurden, teils mit eingefrorener Version beim Hoster gegen Aufpreis. Der Umstieg auf PHP 8 ist machbar, aber er braucht einen Plan. Ein direkter Sprung auf die neueste Version ohne Vorbereitung endet fast immer in einer Reihe von Fehlern.
Erst analysieren, dann Abhängigkeiten aktualisieren, dann den Code mit automatischen Umbauwerkzeugen und Handarbeit anpassen, dann testen. Bei großen Sprüngen lohnt der Weg über Zwischenversionen. Die meisten Brüche sind gut bekannt: entfernte Funktionen, strengere Typen, geänderte Vergleiche, Null-Werte an Funktionen.
Website down oder gehackt? Schreib mir per WhatsApp oder E-Mail mit Domain und kurzer Beschreibung — ich melde mich in der Regel innerhalb weniger Stunden, auch am Wochenende, wenn es brennt. Zugangsdaten bitte nie in der ersten Nachricht, sondern erst nach Absprache über einen sicheren Weg.
Warum es dringend ist.
PHP 7.4, die letzte Version der Siebener-Reihe, bekommt seit Jahren keine Sicherheitsupdates mehr. Wer darauf läuft, betreibt eine Anwendung auf einer Grundlage mit bekannten, nicht mehr geschlossenen Lücken (PHP-Versionen).
Dazu kommt: Bibliotheken, Frameworks und Erweiterungen unterstützen PHP 7 längst nicht mehr. Die Anwendung ist also auch bei ihren Abhängigkeiten auf alten, unsicheren Ständen festgehalten.
Bestandsaufnahme.
- PHP-Version auf Server und Kommandozeile.
- Framework und Version, falls vorhanden.
- Abhängigkeiten und ihre Versionen.
- Umfang des eigenen Codes.
- Vorhandene Tests — oft keine.
- Versionsverwaltung — ist der Code überhaupt in einem Repository?
- Testumgebung — gibt es eine?
Die letzten beiden Punkte sind Voraussetzungen. Ohne Versionsverwaltung und Testumgebung wird jede Migration zum Risiko. Beides einzurichten ist der erste Schritt (Anwendung übernehmen).
Statische Analyse.
Werkzeuge zur statischen Analyse lesen den Code, ohne ihn auszuführen, und melden Stellen, die mit einer bestimmten PHP-Version nicht verträglich sind. Es gibt Prüfregeln speziell für die Kompatibilität zwischen PHP-Versionen.
Das Ergebnis ist eine Liste mit allen Fundstellen. Sie zeigt den Umfang der Arbeit realistisch — oft weniger als befürchtet, manchmal mehr. Für eine Aufwandsschätzung ist sie unverzichtbar.
Statische Analyse findet nicht alles. Code, der dynamisch erzeugt wird oder Funktionen über Zeichenketten aufruft, entgeht ihr teilweise. Deshalb gehört nach der Analyse immer ein Test dazu.
Abhängigkeiten.
Bibliotheken, die über die Abhängigkeitsverwaltung eingebunden sind, haben meist neuere Versionen, die PHP 8 unterstützen. Oft mit eigenen Änderungen, die den eigenen Code betreffen.
Schwierig wird es bei Bibliotheken, die nicht mehr gepflegt werden. Dann gibt es drei Wege: einen gepflegten Nachfolger suchen, die Bibliothek selbst anpassen oder die Funktion ersetzen. Das ist oft der aufwendigste Teil der Migration.
Ein Sonderfall sind Anwendungen, deren Bibliotheken einfach in ein Verzeichnis kopiert wurden, ohne Abhängigkeitsverwaltung. Hier lohnt es sich, im Zuge der Migration auf eine Abhängigkeitsverwaltung umzustellen.
Automatische Umbauwerkzeuge.
Es gibt Werkzeuge, die Code automatisch umbauen — etwa veraltete Schreibweisen durch neue ersetzen, Typangaben ergänzen oder entfernte Funktionen austauschen. Sie arbeiten mit Regelsätzen für bestimmte Zielversionen.
Das spart viel Handarbeit. Das Ergebnis muss trotzdem geprüft werden: Automatische Umbauten sind meist korrekt, aber nicht immer im Sinne des ursprünglichen Codes. Mit Versionsverwaltung lässt sich jede Änderung einzeln ansehen und bei Bedarf zurücknehmen.
Die typischen Brüche.
| Bruch | Was passiert |
|---|---|
| Entfernte Funktionen | Aufruf führt zu einem Fehler |
| Strengere Typprüfung bei eingebauten Funktionen | Falsche Typen lösen Fehler statt Warnungen aus |
| Geänderte Vergleiche von Zahl und Text | Bedingungen verhalten sich anders |
| Null an Funktionen, die Text erwarten | Hinweise als veraltet, später Fehler |
| Dynamische Eigenschaften | Seit 8.2 als veraltet gemeldet |
| Benannte Argumente und Signaturen | Abweichende Parameternamen in Unterklassen |
Der geänderte Vergleich zwischen Zahlen und Text ist der heimtückischste Punkt: Der Code läuft ohne Fehler, aber eine Bedingung liefert ein anderes Ergebnis als vorher. Das findet keine statische Analyse zuverlässig — nur ein Test.
Tests.
Die meisten alten PHP-Anwendungen haben keine automatischen Tests. Das ist der Moment, damit anzufangen — nicht flächendeckend, sondern für die wichtigsten Abläufe: Anmeldung, Bestellung, Berechnung, Export.
Ein pragmatischer Einstieg sind Tests, die eine Funktion von außen aufrufen und das Ergebnis mit dem bisherigen vergleichen. Sie laufen vor der Migration auf PHP 7 und danach auf PHP 8 — gleiche Ergebnisse heißen: Verhalten unverändert.
Dazu kommt der manuelle Test aller wichtigen Funktionen in der Testumgebung mit aktiviertem Fehlerprotokoll.
Schrittweise vorgehen.
Bei einem Sprung von PHP 7.0 oder 7.2 direkt auf 8.4 kommen viele Änderungen gleichzeitig. Das macht die Fehlersuche schwer. Ein Weg über Zwischenversionen — erst 7.4, dann 8.1, dann die Zielversion — trennt die Probleme voneinander.
Jeder Schritt wird getestet und kann einzeln live gehen. Das dauert insgesamt nicht unbedingt länger, ist aber deutlich kontrollierter.
Der Wechsel live.
- Sicherung von Code und Datenbank.
- Deployment des angepassten Codes.
- PHP-Version umstellen.
- Wichtigste Funktionen sofort prüfen.
- Fehlerprotokoll die ersten Tage eng beobachten.
- Rückweg bereithalten: alte Version einstellbar, alter Code verfügbar.
Danach.
Die Migration ist auch der Moment, für Ordnung zu sorgen: Versionsverwaltung, Abhängigkeitsverwaltung, Testumgebung, erste Tests, Dokumentation. Mit dieser Grundlage wird der nächste Versionswechsel — und der kommt in wenigen Jahren — deutlich einfacher (Altprojekt modernisieren).
Wenn du nicht weiterkommst.
Wenn deine Anwendung noch auf PHP 7 läuft und du sie sicher auf PHP 8 bringen willst. Ich sehe mir den Code an, sage dir, wo die Risiken liegen, und setze um, was nötig ist. Die Übersicht findest du unter PHP und Laravel; wenn es eilt, hilft der Notfall-Support.
Ursache finden, Website wieder zum Laufen bringen, kurzer Bericht — meist am selben Tag.
Für Anpassungen, Fehlerbehebung und Beratung nach Aufwand, abgerechnet in 15-Minuten-Schritten.
Updates, Backups, Sicherheitscheck, Monitoring — Kleinigkeiten inklusive.
Orientierungswerte, keine Fixpreise — nach einem kurzen Gespräch bekommst du ein Festpreisangebot.
Wer hilft.
Ich bin Manuel Killert, Webentwickler aus Quakenbrück. PHP ist die Sprache, in der ich seit Jahren am meisten Code schreibe — in WordPress-Plugins, Shop-Erweiterungen, Schnittstellen und eigenständigen Anwendungen mit Laravel. Ich unterrichte Webentwicklung als Dozent und kenne PHP vom alten prozeduralen Skript bis zur modernen, typisierten Anwendung mit Tests.
Gerade bei bestehenden Anwendungen zählt das: Ich lese fremden Code schnell, erkenne, wo er gegen die Sprache arbeitet, und sehe, was sich mit vertretbarem Aufwand retten lässt. Viele PHP-Projekte, die als hoffnungslos gelten, sind es nicht — sie wurden nur lange nicht gepflegt.
Was du bekommst: eine ehrliche Einschätzung, ob sich modernisieren oder neu bauen lohnt, sauberen Code, den auch andere Entwickler verstehen, und eine Dokumentation — auch wenn die Antwort lautet, dass die Anwendung so bleiben kann.
Echte Projekte — live ansehen.
WordPress-Websites, die ich gebaut habe oder laufend betreue.

Markenfest
Stärkerer Online-Shop — Webdesign, Content und individuelle Shop-Funktionen.
Website ansehen ↗
KT Bodenteam
Professioneller Auftritt für einen Bodenleger — Vorher-Nachher-Slider und regionale SEO.
Website ansehen ↗
Potassco Solutions
Klare Website für ein KI-Unternehmen, die komplexe Technologie verständlich macht.
Website ansehen ↗FAQ — PHP 7 auf 8.
Warum sollte ich von PHP 7 auf 8 wechseln?
PHP 7 bekommt seit Jahren keine Sicherheitsupdates mehr, und Bibliotheken unterstützen es nicht mehr. Die Anwendung bleibt sonst auf unsicheren Ständen hängen.
Wie finde ich heraus, was angepasst werden muss?
Mit statischer Analyse, die den Code auf Verträglichkeit mit der Zielversion prüft. Das Ergebnis zeigt den Umfang realistisch.
Kann der Umbau automatisch passieren?
Teilweise. Umbauwerkzeuge ersetzen veraltete Schreibweisen und Funktionen nach Regelsätzen. Das Ergebnis muss trotzdem geprüft werden.
Was ist der heimtückischste Bruch?
Der geänderte Vergleich zwischen Zahlen und Text. Der Code läuft ohne Fehler, aber Bedingungen liefern andere Ergebnisse. Das findet nur ein Test.
Direkt auf die neueste Version oder schrittweise?
Bei großen Sprüngen schrittweise über Zwischenversionen. Das trennt die Probleme voneinander und macht die Fehlersuche einfacher.
Was brauche ich vor der Migration?
Versionsverwaltung und eine Testumgebung. Ohne beides wird jede Migration zum Risiko.
Das bin ich – rechts im BildErzähl mir, was deine Anwendung tun soll.
Schreib mir, um welche Anwendung es geht, auf welcher PHP- und Framework-Version sie läuft und was gerade das Problem ist. Wenn sie gerade nicht läuft, schreib das in die erste Zeile.
Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de