Migration von Spaghetti-Code zu Symfony 2

8

Ich habe gerade einen Job in Corporate America zurückbekommen, und ich habe einen Haufen php 4 Flat Files geerbt. Ich möchte nach Symfony 2 migrieren, aber auf keinen Fall erhalte ich die Erlaubnis, das Ganze neu zu bewerten.

Hat jemand Vorschläge für die Migration kleiner Teile oder Abschnitte eines Projekts nach Symfony 2? Vielleicht könnte ich ein Verzeichnis mit der gesamten alten Codebasis haben und anfangen, indem ich nur das Routing in Symfony 2 benutze, um die alten flachen Dateien zu packen?

Wenn jemand irgendwelche Vorschläge hat, würde ich sie gerne hören.

    
Clint 03.11.2011, 14:51
quelle

3 Antworten

3

Zuerst haben Sie gefragt, ob Sie die Anwendung umgestalten können? Sie können einen Geschäftsfall basierend auf erstellen:

  • Fähigkeit, die Software zu geringeren Kosten weiter zu betreiben
  • Es wird einfacher sein, andere Entwickler in das Projekt einzuführen
  • Es wird einfacher sein, neue Funktionen hinzuzufügen

Ein vollständiger Re-Faktor ist möglicherweise nicht so kompliziert oder zeitraubend, wie Sie sich vorstellen, und er kann parallel ausgeführt werden, während die alte App beibehalten wird.

Nun, das zu tun, was Sie vorschlagen, ist ein bisschen schwieriger. Sie müssen Folgendes beachten:

  • Die Möglichkeit, ein ORM für die vorhandene Datenbankstruktur zu verwenden, hängt davon ab, wie gut es entworfen wurde.
  • Eine Menge php4-Code wird auf php5 nicht funktionieren und Sie könnten am Ende eine beträchtliche Menge Code ändern, Bugs einführen, usw.
  • Ein benutzerdefinierter Code wird benötigt, um die Sitzung in beide Codebasen zu integrieren.

Wenn die oben genannten Punkte kein Problem darstellen, können Sie die php4-Struktur zum Web-Ordner hinzufügen, um direkt darauf zugreifen zu können, und nacheinander die Routen ersetzen, wenn Sie in Symfony jeden Bildschirm erstellen.

Diese Vorschläge sind sehr kontextbezogen. Es hängt wirklich davon ab, wie komplex Ihre Anwendung ist und wie unordentlich sie wirklich ist.

Viel Glück, tho!

    
SuitedSloth 03.11.2011, 15:05
quelle
2

Fügen Sie zunächst einen benutzerdefinierten Frontcontroller als Front-End für diese flachen Dateien ein.

Sie können alte URLs mit mod_rewrite an den neuen Frontcontroller umleiten.

%Vor%

Pfade können dann in index.php durch $_SERVER['PATH_INFO']

abgerufen werden

Vom Front-Controller aus können Sie feinkörnige schrittweise Umleitungen zu jeder vordefinierten Lösung durchführen, zu der Sie wechseln möchten. Für die URLs, für die Sie die alte Funktionalität beibehalten möchten, sollten einige include("./".$_SERVER['PATH_INFO']) den Trick machen.

    
ZJR 03.11.2011 15:06
quelle
1

Mein Rat ist, es in Schritte zu brechen. Oft akzeptiert das Management eine Reihe kleinerer Kosten viel einfacher als einmalige einmalige Kosten. Ich würde mich darauf konzentrieren, den Code aufgeräumt und PHP5 bereit zu machen, bevor ich zu Symfony2 migriere.

Sobald der Code sauber ist, sollte die Integration von Symfony2 in Ihr Projekt ziemlich einfach sein.

    
Steve Francia 03.11.2011 15:53
quelle

Tags und Links