Legacy-PHP und Laravel-Upgrades

Alte Laravel- und PHP-Anwendungen aktualisieren und modernisieren

Eine Anwendung auf Laravel 5, 6 oder 8, PHP 7, das auf PHP 8 muss, Pakete ohne Updates oder ein Entwickler, der weg ist. Solche Anwendungen aktualisiere ich, für Firmen ohne eigene Entwickler und für Teams, die bei einem heiklen Upgrade Unterstützung wollen.

KI gehört fest zu meiner Arbeit. Damit lese ich alten Code schneller, finde alle betroffenen Stellen und schreibe die fehlenden Tests. Bei allem, was live geht, arbeite ich sorgfältig. Laravel und Vue sind mein bevorzugter Stack. Ich arbeite von Deutschland aus.

Antwort innerhalb eines Werktags.

Vincent Schmalbach

Was zu einem Upgrade gehört

Egal ob die Anwendung auf Laravel 5 oder auf PHP 5 läuft.

Den Ist-Zustand prüfen

Welche Framework-Version, welche PHP-Version, welche Composer-Pakete und ob sie noch gepflegt werden. Wie stark das Framework angepasst wurde und welche Teile Tests haben. Daraus ergibt sich, wie groß die Aufgabe ist und was kaputtgehen kann.

Tests vor dem Upgrade

Alte Anwendungen haben meist wenige Tests. Deshalb schreibe ich zuerst Tests für die wichtigsten Teile, zum Beispiel Checkout, Login und die Reports, mit denen das Unternehmen arbeitet.

Eine Hauptversion nach der anderen

Von Laravel 5 auf 11 geht es in Etappen. Jede Version hat ihre eigene Upgrade-Anleitung und eigene Änderungen. Nach jedem Schritt laufen die Tests.

PHP 7 auf PHP 8

PHP 8 prüft Typen strenger, einige Funktionen gibt es nicht mehr, und manches verhält sich anders. PHPStan und Rector finden das meiste davon, bevor es im Livebetrieb auffällt. Den Rest zeigen die Tests.

Veraltete Pakete ersetzen

Bei alten Anwendungen machen Pakete, die seit Laravel 6 keine Updates mehr bekommen, viel Arbeit. Für manche gibt es einen gepflegten Nachfolger. Manche ersetze ich durch ein paar Zeilen eigenen Code, manche entwickle ich neu. Die Liste dieser Pakete gibt es vorab.

Umstellung ohne Ausfallzeit

Ich mache das Upgrade auf einer Kopie, und die Live-Anwendung läuft weiter. Umgestellt wird erst, wenn alles passt. Falls danach doch etwas auftaucht, gibt es einen Weg zurück.

So arbeite ich

Viele meiner Kunden kommen mit einer Idee, einem Repository, einem kurzen Video oder einer Liste von Problemen zu mir. Mehr braucht es am Anfang nicht. Ich sehe mir an, was vorhanden ist, mache daraus einen Plan und setze ihn um.

Mit Claude Code, Codex und eigenen Agent-Workflows lese ich mich in Code ein, plane Änderungen, schreibe Tests, refaktoriere und suche Fehler. Das ist kein Vibe Coding, sondern erfahrene Softwareentwicklung in deutlich höherem Tempo.

KI zuerst, gerade bei altem Code

Mit Claude Code und Codex lese ich mich viel schneller in alten Code ein. Ich erkenne leichter, was wovon abhängt, und schreibe die fehlenden Tests. Die Routinearbeit eines Upgrades erledigen meine eigenen Agent-Workflows, und ich treffe die Entscheidungen.

Die Kontrolle bleibt bei mir

KI schreibt einen großen Teil meines Codes. Die technischen Entscheidungen treffe ich trotzdem selbst. Jede Änderung lese und teste ich, bevor sie live geht. So bin ich schnell und bleibe dabei sorgfältig.

So, wie es für den Kunden passt

Manche Kunden wollen jede Änderung sehen, bevor sie live geht, andere überlassen mir das Deployment. Manche möchten regelmäßig telefonieren, die meisten bekommen lieber schriftliche Updates. Ich arbeite gerne asynchron und stelle die wichtigen Fragen trotzdem, sobald sie auftauchen.

Mit dem Blick eines Unternehmers

Ich betreibe selbst mehrere Online-Angebote. Deshalb denke ich bei jedem Projekt Traffic, Conversion, Umsatz und Support mit, und ich sage offen, wenn sich etwas nicht lohnt.

Beispiele aus meiner Arbeit

Upgrades und Übernahmen der letzten Jahre.

Immobilienplattform

Laravel 5 auf Laravel 11, PHP 7.4 auf 8.3

Ich habe eine Laravel-5-Website mit veralteten Paketen übernommen und Schritt für Schritt auf Laravel 11 und PHP 8.3 aktualisiert. Dabei habe ich die ungepflegten Pakete ersetzt und die Synchronisation mit Salesforce zuverlässig gemacht. Das Hosting ist zu Hetzner umgezogen, mit automatischen Deployments.

Zehn Jahre alte SaaS-Anwendung

Eigenes PHP-Framework, keine Dokumentation

Eine SaaS-Anwendung auf einem selbst entwickelten PHP-Framework, das nie dokumentiert wurde. Ich habe zuerst die dringenden Probleme behoben. Dann habe ich aufgeschrieben, wie das System funktioniert, und eine Docker-Entwicklungsumgebung eingerichtet.

Zwei Backends in einem

PHP und Ruby on Rails in einer Laravel-Anwendung zusammengeführt

Zwei Backends in zwei Sprachen, teuer im Hosting und schwer zu warten. Ich habe beide in eine einzige Laravel-Anwendung überführt, die alle Funktionen übernimmt. Die Hostingkosten sind von einem vierstelligen Betrag im Monat auf etwa 150 Dollar gesunken.

Das sagen meine Kunden

"He also expertly managed a complex upgrade of our core platform (Laravel) to the latest version, ensuring we stay current and secure."

Howard Rickard, Athena Advisers Ltd

"We especially value how quickly he gets into mature projects and finds solutions that fit the existing state of the codebase. Absolutely recommended."

Florian Brunner, designundzwanzig OG

"Vincent is one of those rare developers who can jump into a complex codebase, become useful immediately, and solve real problems without hand-holding."

Yash Chandra, Academy of Mine

Fragen und Antworten

Wie lange dauert ein Upgrade?

Das hängt von der Größe der Anwendung ab, davon, wie stark das Framework angepasst wurde, wie viele Pakete ersetzt werden müssen und ob es Tests gibt. Ich sehe mir die Anwendung zuerst an und sage dann, was nötig ist.

Geht ein Upgrade auch ohne Tests?

Ja, bei älteren Anwendungen ist das normal. Dann schreibe ich zuerst Tests für die wichtigen Teile. Das ist mehr Arbeit. Dafür fällt beim Upgrade sofort auf, wenn etwas kaputtgeht.

Muss die Anwendung während des Upgrades stillstehen?

Nein. Ich mache das Upgrade auf einer Kopie, und die Live-Anwendung läuft weiter. Umgestellt wird, wenn alles funktioniert.

Was, wenn der frühere Entwickler weg ist und es keine Dokumentation gibt?

So ist es bei den meisten Anwendungen, die ich übernehme. Ich lese den Code und schreibe dabei auf, was ich finde.

Geht das auch mit PHP-Anwendungen ohne Laravel?

Ja. Eigene PHP-Frameworks, alte CMS-Installationen und PHP-5- oder PHP-7-Code, der auf PHP 8 muss. Die Anwendung auf Laravel umzustellen ist möglich, aber keine Pflicht.

Wäre eine Neuentwicklung besser?

Selten. Eine Neuentwicklung dauert meist länger und kostet mehr als gedacht. Außerdem steckt in der alten Anwendung viel Wissen über das Unternehmen, das nirgends aufgeschrieben ist. Wenn eine Neuentwicklung doch besser ist, sage ich das und erkläre, warum.

Projekt anfragen

Welche Versionen im Einsatz sind, wie groß die Anwendung ungefähr ist und ob es Tests gibt. Ein paar Sätze genügen. In meiner Antwort steht, was ich tun würde und was es kostet.

Lieber kurz telefonieren? 30 Minuten buchen.

Antwort innerhalb eines Werktags.