Sie haben eine PHP-Anwendung, die seit Jahren läuft – aber jedes Update wird zur Mutprobe, neue Entwickler verstehen den Code nicht mehr, und der Hoster mahnt zum PHP-Upgrade. Sie sind nicht allein. Legacy-PHP-Modernisierung ist eine der häufigsten Anfragen, mit denen Kunden zu uns kommen. Und sie ist machbar – ohne den großen Knall.
Warum Legacy-Modernisierung kein Big-Bang sein darf
Der klassische Fehler bei Legacy-Code-Modernisierung: alles auf einmal neuschreiben wollen. Das funktioniert fast nie. Der Aufwand wird unterschätzt, der laufende Betrieb leidet, und am Ende existieren parallel zwei Systeme mit unterschiedlichen Features. Wir gehen anders vor – mit der Strangler-Fig-Pattern-Methode nach Martin Fowler: Schritt für Schritt werden alte Komponenten durch neue ersetzt, ohne dass die Anwendung jemals offline geht.
Was wir modernisieren
- PHP-Versions-Upgrades von 5.6 / 7.x auf 8.x
- Framework-Wechsel von Legacy-Frameworks (CodeIgniter, Zend Framework 1, eigene Frameworks) auf Symfony oder Laravel
- Architektur-Refactoring von “Big Ball of Mud” zu Schichtenarchitektur
- Code-Modernisierung mit Rector, Psalm und PHPStan
- Datenbank-Modernisierung von prozeduralen mysql-Calls zu PDO oder Doctrine
- Test-Suite-Aufbau für bisher untestbaren Code
- CI/CD-Einführung für Anwendungen, die bisher per FTP deployed wurden
Unser Modernisierungs-Ansatz
Phase 1 – Audit und Risikobewertung
Vor jeder Modernisierung steht ein Code-Audit: Welche Komponenten sind kritisch? Wo liegen die größten technischen Schulden? Welche Sicherheitslücken sind bereits da? Wir nutzen statische Code-Analyse (PHPStan, Psalm), Dependency-Audits und manuelles Review.
Phase 2 – Charakterisierungs-Tests
Bevor wir Code refactoren, sichern wir das aktuelle Verhalten ab. Characterization Tests nach Michael Feathers (Working Effectively with Legacy Code) dokumentieren, was die Anwendung tut – auch wenn niemand mehr weiß, warum sie es so tut.
Phase 3 – Strangler-Fig-Migration
Neue Funktionalität entsteht in modernem Code parallel zum Legacy-System. Bestehende Funktionen werden schrittweise durch neue Implementierungen ersetzt. Der Legacy-Code “verdorrt” über Zeit – bis er entfernt werden kann.
Phase 4 – PHP-Version-Upgrade mit Rector
Mit Rector automatisieren wir große Teile der PHP-Upgrade-Arbeit: deprecated Funktionen, Type-Declarations, Property-Promotion, Match-Statements. Was Rector nicht kann, machen wir manuell – aber wir starten mit dem 80%-Werkzeug.
Phase 5 – Architektur-Cleanup
Schrittweise Einführung von Service-Container, Dependency Injection, Repository-Pattern und Domain-Schichten. Damit der Code testbar, verständlich und erweiterbar wird – ohne Komplettumbau.
Was unsere Modernisierungen kosten
Eine ehrliche Größenordnung: Legacy-PHP-Modernisierung ist nie billig. Kleine Anwendungen (unter 20.000 Lines of Code) starten bei 15.000 Euro. Mittlere Anwendungen liegen typischerweise bei 30.000 bis 80.000 Euro. Große Enterprise-Modernisierungen können sechsstellig werden. Wir empfehlen immer eine erste Audit-Phase (typisch 1.500 bis 5.000 Euro), nach der wir einen verbindlichen Festpreis oder eine Sprint-Planung anbieten können.
Verwandte Leistungen
Nach der Modernisierung kommt der Betrieb: PHP-Wartung und Performance-Optimierung. Bei Bedarf an moderner Infrastruktur: DevOps-Engineering. Übersicht aller PHP-Themen: PHP-Hauptseite und PHP-Leitfaden.
Mini-Case aus unserer Praxis
Migration einer Legacy-PHP-Anwendung von PHP 5.6 zu PHP 8.3
Wir haben eine mittelständische Geschäftsanwendung schrittweise von PHP 5.6 auf PHP 8.3 migriert. Ausgangslage: ca. 120.000 Lines of Code, kein Test-Coverage, keine CI/CD, manuelles FTP-Deployment, Codebasis aus rund 7 Jahren mit wechselnden Entwicklern. Vorgehen über 6 Monate: Phase 1 (4 Wochen) Code-Audit und Charakterisierungs-Tests. Phase 2 (8 Wochen) Rector-getriebene Upgrade-Schritte auf PHP 7.4. Phase 3 (4 Wochen) auf PHP 8.0. Phase 4 (4 Wochen) auf PHP 8.3 mit Type-Declarations. Parallel: schrittweise Einführung von PHPUnit-Tests, CI-Pipeline, Container-basiertes Deployment. Resultat: aktuelle PHP-Version, Test-Coverage in der Geschäftslogik knapp 60 Prozent, Deployment-Zeit von Stunden auf Minuten reduziert.
Häufige Fragen zur PHP-Modernisierung
Müssen wir während der Modernisierung Feature-Freeze fahren?
Nein, das ist gerade der Vorteil der Strangler-Fig-Methode. Neue Features entstehen in modernem Code parallel zum Legacy-Teil. Es gibt keinen Feature-Stopp – im Gegenteil, oft entsteht während der Modernisierung sogar mehr Geschäftswert, weil neue Features schneller umgesetzt werden können.Was passiert mit unseren bestehenden Daten?
Daten bleiben in der Datenbank. Wir migrieren in der Regel Code, nicht Daten. Falls Datenmodell-Änderungen nötig werden (selten), planen wir Migrations-Skripte mit Rollback-Möglichkeit – sicher und nachvollziehbar.
Können Sie auch Frameworks wechseln?
Ja, das ist häufig Teil der Modernisierung. Klassische Wechsel: eigenes Framework auf Symfony oder Laravel. Zend Framework 1 auf Symfony. CodeIgniter auf Laravel. Wir empfehlen das Ziel-Framework auf Basis Ihrer Anforderungen, nicht aus Gewohnheit.
Wie viel kostet eine PHP-Modernisierung typischerweise?
Kleine Anwendungen unter 20.000 LoC: ab 15.000 €. Mittlere (20.000-80.000 LoC): 30.000-80.000 €. Große Enterprise-Anwendungen: sechsstellig. Wir empfehlen immer eine erste Audit-Phase (1.500-5.000 €), nach der wir verbindlich kalkulieren können.