Alle Technologien

Technologien · Framework

PHP-Eigenbau ohne Framework übernehmen

Selbst gebaute PHP-Anwendung, gewachsen über Jahre, Entwickler weg? Ich übernehme PHP-Eigenbauten ohne Framework, sichere sie ab und bringe sie auf aktuelles PHP.

Von Dimitri König · Aktualisiert am

Viele Firmen-Anwendungen sind nie als grosses Projekt gestartet: ein Bestellformular, dann ein Kundenbereich, dann eine Schnittstelle zum ERP. Zwanzig Jahre später ist daraus ein geschäftskritisches System geworden, gebaut von einer Person, ohne Framework, ohne Tests, auf einem Server, den niemand mehr anfassen will.

Wann ist eine Eigenbau-Übernahme typisch?

  • Der Entwickler, der die Anwendung über Jahre gebaut hat, geht in Pension oder ist nicht mehr erreichbar.
  • Die Anwendung läuft auf PHP 5 oder 7, und der Hoster stellt diese Versionen ab.
  • Jede Änderung ist riskant, weil niemand weiss, was sie noch beeinflusst.

Worauf ich bei Eigenbauten zuerst schaue

  1. Einstiegspunkte: Welche Skripte werden direkt aufgerufen, welche per Cronjob, welche per Schnittstelle?
  2. Datenbank: Schema, Beziehungen, gespeicherte Prozeduren und die Art der Abfragen. Werden Eingaben sauber maskiert oder direkt in SQL eingesetzt?
  3. PHP-Kompatibilität: Entfernte Funktionen und veraltete Konstrukte, geprüft mit PHPCompatibility.
  4. Abhängigkeiten: Eingebundene Bibliotheken, oft als kopierte Dateien statt über Composer.
  5. Betrieb: Server, Konfiguration, Zugangsdaten im Code, Backups.

Absichern, dokumentieren, dann modernisieren

Bei Eigenbauten beginne ich mit einer lauffähigen Kopie auf einer Testumgebung und Tests für die kritischen Abläufe. Danach folgt das PHP-Upgrade, Schritt für Schritt. Soll die Anwendung langfristig auf ein Framework, überführe ich sie Bereich für Bereich nach dem Strangler-Fig-Prinzip: Das Neue wächst um das Alte herum, bis das Alte abgeschaltet werden kann.

Quellen

  1. [1]Migrating from PHP 5.6.x to PHP 7.0.x, Backward incompatible changes · php.net
  2. [2]Migrating from PHP 7.4.x to PHP 8.0.x, Backward incompatible changes · php.net
  3. [3]PHPCompatibility · GitHub
  4. [4]Rector · Rector
  5. [5]Strangler Fig Application · Martin Fowler

FAQ

Häufige Fragen zu PHP ohne Framework.

Unsere Anwendung hat kein Framework. Ist das ein Problem?

Nicht grundsätzlich. Viele Eigenbauten sind pragmatisch und tun seit Jahren ihren Dienst. Schwierig wird es, wenn nur eine Person weiss, wie alles zusammenhängt. Im Assessment rekonstruiere ich Aufbau, Datenflüsse und Betrieb und halte sie schriftlich fest.

Kann man eine PHP-5-Anwendung auf PHP 8 bringen?

Ja, meistens schrittweise. Typische Hürden sind die mit PHP 7 entfernten mysql-Funktionen, die mit PHP 8 entfernten Funktionen wie each() und create_function() und strengere Fehlerbehandlung. Werkzeuge wie PHPCompatibility und Rector finden und beheben einen grossen Teil davon, die Tests für kritische Abläufe schreibe ich vorher.

Sollten wir die Anwendung auf Laravel oder Symfony umbauen?

Nicht als Selbstzweck. Ein Framework lohnt sich, wenn die Anwendung weiterentwickelt wird und mehr als eine Person daran arbeiten soll. Dann lässt sie sich Stück für Stück überführen, statt alles auf einmal neu zu bauen. Für stabile Anwendungen mit wenig Änderungen reicht oft ein sauberes Upgrade mit Dokumentation.