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.
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
- Analyse und Versionserkennung. Wir bestimmen die PHP-Variante und kartieren die Anwendung.
- Architektur. Zielbild auf Laravel + React, Datenmodell, Schnittstellen.
- Umsetzung. Schrittweise Überführung, God-Klassen werden aufgelöst, Logik in Services gezogen.
- Datenmigration und -bereinigung. Inklusive
magic_quotes-Diagnose und Cleanup per Artisan-Befehl. - Qualitätssicherung. Sicherheitsprüfung, Funktionsabnahme, Tests.
Schrittweise statt Big Bang. Das Altsystem läuft weiter, bis das neue trägt.
Vertiefung
- PHP 5 zu Laravel migrieren – der konkrete Weg von der alten Codebasis zum Framework.
- React-Frontend statt verstreutem PHP-HTML – wie aus eingebettetem HTML eine moderne Oberfläche wird.
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.
