IPC 2013

Legacy Apps in Symfony 2 migrieren
Kommentare

Die erste Boeing 747 lief im Jahre 1969 vom Stapel. Vierzig Jahre lang wurde sie kaum verändert und als solides Produkt hat sie ihrem Unternehmen viel Geld eingebracht. Einzig der Austausch des Antriebs wurde irgendwann nötig, doch konnte man dieses Teil ersetzen und das Gesamtprodukt ungestört weiter vermarkten. 

Mit Web-Projekten ist das ähnlich. Früher oder später gelangt man mit ihnen an einen Punkt, wo es sinnvoll wird, die Engine auszutauschen. Davon berichtet Hans-Christian Otto (crosscan) in seiner Session über die Erfolgsgeschichte einer gelungenen Migration zum Symfony Framework 2. 

Hans-Christian Otto zeigt einen erfolgreichen Migrationspfad einer alten Anwendung in Symfony Framework 2

Die Entscheidung dafür beruhte darauf, dass die bis dahin verwendeten eZ-Komponenten nicht mehr gewartet wurden, während man bei Symfony besonders in der HTTP-Komponente bereits neuere Features zur Verfügung hatte, an die man ohne viel Aufhebens im Legacy System nicht herangekommen wäre. 

Ein weiteres Argument für Symfony war das große Umfeld, das sich um das Framework schart. Derzeit schöpft die Community aus einer Quelle von 2.000 Bundles, die sich sofort mit dem Framework nutzen lassen. In Aussicht auf viel ersparte Arbeit in der Zukunft möchte man freilich Zugriff auf diese Gemeinschaft haben, liegen darin Lösungen für etliche anstehende Probleme bereits parat. 

Dank der Untergliederung des Frameworks in einzelne Module ist ein sanfter Übergang zu Symfony 2 möglich. Weite Teile des bestehenden Projektes lassen sich dabei weiterverwenden, während kritische Komponenten verbessert werden, um neuen Anforderungen etwa im Bereich der Skalierung zu entsprechen. 

Dreh- und Angelpunkt der Migration bei Ottos Beispiel war zunächst der Controller. Dies macht es also als ersten Schritt nötig, die bestehende Architektur zu skizzieren, damit man diese peu à peu mit Symfony-Komponenten ausstatten kann. Weitere Schritte sollten dann entlang der Symfony-Dokumentation gegangen werden, die solche Szenarien bereithält. 

Bevor man sich an eine solche Migration wagt, sollte man in einem neuen, kleinen Projekt testen, ob Symfony das richtige Framework für die eigenen Ansprüche ist. Für den Start kann man Symfony 2 via Composer installieren und mit dem Verzeichnis der eigenen App vereinigen. Anschließend kann man es via Includes in den Bootloader von Symfony laden.

Abschließend sagt Otto, dass es bei einem solchen Prozess ratsam ist, über Vagrant oder Selenium möglichst viele Bestandteile der Entwicklung zu automatisieren, da Testsysteme und Tests dutzendfach aufgesetzt werden müssen. Viel Zeit würde verloren gehen, wenn man dies immer wieder von Hand machen würde. Außerdem soll man nicht vor dem Anheuern externer Hilfe zurückschrecken, da dies die Schwellen vor dem Start in die Migration stark absenken kann und etwaigen Fallstricken vorbeugt. 

Einen weiteren Erfahrungsbericht zur Migration auf Symfony 2 liefert Nicolas Pastorino, der dies mit eZ Publish vollzogen hat. Im Gespräch mit Robert Lemke wägt er Vor- und Nachteile dieser Entscheidung ab.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -