PHP 4/5 migrieren – auf Laravel und ein React-Frontend

PHP hat das Web groß gemacht, und genau deshalb gibt es so viele alte PHP-Anwendungen. Shops, Buchungssysteme, Verwaltungstools, gewachsen über Jahre, oft von wechselnden Entwicklern. Sie funktionieren. Aber sie stehen auf PHP-Versionen, die seit Jahren keine Sicherheitsupdates mehr bekommen.

Wir bringen diese Anwendungen auf einen modernen Stand: Laravel mit PHP 8 im Backend, React mit TypeScript im Frontend. Inklusive der Aufräumarbeiten, die bei PHP 4 und 5 fast immer dazugehören.

Code-Assessment anfordern →


Erst feststellen, womit man es zu tun hat

PHP 4 und PHP 5 sind nicht dasselbe Problem. Zwischen den Versionen liegen Welten – beim Objektmodell, bei der Datenbankanbindung, bei der Sicherheit. Bevor wir migrieren, bestimmen wir genau, mit welcher Variante wir arbeiten. Diese Versionserkennung ist kein Selbstzweck: Sie entscheidet, welche Altlasten überhaupt im Spiel sind.

Bei sehr alten Anwendungen heißt das oft: ein Stück Software-Archäologie, bevor die eigentliche Migration beginnt.


Die typischen Altlasten – und wie wir sie auflösen

magic_quotes: vergiftete Daten

In alten PHP-Versionen wurden Eingaben automatisch mit Backslashes versehen. Klang nach Sicherheit, war eine Quelle endloser Fehler – und hat oft die Datenbank mit kaputt-escapten Daten gefüllt. Diese Verunreinigung zieht sich durch den gesamten Bestand. Wir diagnostizieren das Ausmaß und bereinigen die Daten gezielt über einen eigenen Artisan-Befehl, statt von Hand durch tausende Datensätze zu gehen.

register_globals: offene Türen

Früher landeten Formular- und URL-Parameter direkt als globale Variablen im Code. Bequem zu schreiben, ein Sicherheitsalbtraum. Wir spüren jede Stelle auf, die sich darauf verlässt, und ersetzen sie durch sauberen, expliziten Zugriff.

God-Klassen: die 4000-Zeilen-Datei

In gewachsenem PHP-Code gibt es fast immer diese eine Klasse, die alles macht. Datenbank, Geschäftslogik, Ausgabe, E-Mail-Versand – alles in einem unübersichtlichen Block. Wir zerlegen solche God-Klassen in klar abgegrenzte Bausteine, die je eine Aufgabe haben und sich einzeln testen lassen.


Vom Mischmasch zur sauberen Struktur

Alter PHP-Code mischt typischerweise HTML, SQL und Logik in denselben Dateien. Das Ziel der Migration ist eine klare Trennung:

  • Laravel übernimmt Backend, Routing, Datenbankzugriff über Eloquent und die Geschäftslogik in Services.
  • React mit TypeScript übernimmt das Frontend – eigenständig, typsicher, vom Backend entkoppelt über eine saubere API.

Aus „alles in einer Datei“ wird eine Anwendung, in der jeder Teil seinen Platz hat.


Wie wir vorgehen

  1. Analyse und Versionserkennung. Wir bestimmen die PHP-Variante und kartieren die Anwendung.
  2. Architektur. Zielbild auf Laravel + React, Datenmodell, Schnittstellen.
  3. Umsetzung. Schrittweise Überführung, God-Klassen werden aufgelöst, Logik in Services gezogen.
  4. Datenmigration und -bereinigung. Inklusive magic_quotes-Diagnose und Cleanup per Artisan-Befehl.
  5. Qualitätssicherung. Sicherheitsprüfung, Funktionsabnahme, Tests.

Schrittweise statt Big Bang. Das Altsystem läuft weiter, bis das neue trägt.


Vertiefung


Verwandte Technologien

Wo altes PHP läuft, läuft oft auch anderes serverseitiges Web-Scripting. Bei Classic ASP und Perl-CGI stehen wir vor denselben Grundproblemen – vermischter Code, fehlende Sicherheit, kaum noch Fachkräfte. Eine gemeinsam geplante Migration spart Doppelarbeit.


Häufige Fragen

Wir wissen nicht, ob es PHP 4 oder 5 ist. Ist das ein Problem? Nein, das klären wir in der Analyse. Die Versionserkennung ist fester Bestandteil unseres Vorgehens.

Unsere Datenbank ist über die Jahre unsauber geworden. Geht das trotzdem? Ja. Datenbereinigung gehört zur Migration dazu. Speziell die typische magic_quotes-Verunreinigung lösen wir automatisiert.

Müssen wir alles auf einmal umstellen? Nein. Wir migrieren modulweise mit fachlicher Abnahme. Der Betrieb läuft die ganze Zeit weiter.


Der erste Schritt: Code-Assessment →