Refactoring progetto legacy

8 views
Skip to first unread message

Matteo

unread,
Apr 28, 2017, 11:12:31 AM4/28/17
to Gruppo symfony
Ciao a tutti,
Ho preso in mano un vecchio progetto scritto in Lumen (Micro framework Laravel)
A questo progetto bisogna aggiungere nuove funzionalità ma non vorrei portare avanti il lavoro sullo stesso in quanto spero con il tempo di poterlo migliorare.

Pensavo quindi di metterci in paralleo Symfony, così da sviluppare le nuove features su Sf e dirottare le rotte "mancanti" al progetto legacy in Lumen.

Sapete darmi indicazioni più tecniche su come predisporre la cosa?

Ad esempio, parto da un'installazione pulisa di Sf e ci metto l'applicazione Legacy in una cartella?
Così facendo immagino che dovrò modificare il front controller di Sf dicendogli di gestire le rotte anche con il router di Lumen..

Che ne dite?

Grazie

Massimiliano Arione

unread,
Apr 28, 2017, 12:01:25 PM4/28/17
to symfony-it
Io lascerei i progetti del tutto separati e agirei a livello di server.
Basta configurare il webserver per servire alcuni indirizzi in una docroot e altri in una docroot diversa
Per esempio su apache ci sono varie strategie, vedi https://httpd.apache.org/docs/2.4/urlmapping.html

ciao
M.

Matteo

unread,
Apr 28, 2017, 4:58:29 PM4/28/17
to Gruppo symfony
Grazie Massimiliano. mi sembra una cosa decisamente più pulita. Avendo Nginx dovrò vedere se si può fare una cosa simili a quella che mi hai consigliato per Apache 

Grazie

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "symfony-it" di Google Gruppi.
Visita questo gruppo all'indirizzo https://groups.google.com/group/symfony-it.

Denis Casanuova

unread,
May 9, 2017, 2:43:34 PM5/9/17
to symfo...@googlegroups.com
Io ho sempre usato un bundle di sf2 https://github.com/theodo/TheodoEvolutionLegacyWrapperBundle permette di wrappare vecchi progetti di sf1 e anche codice legacy.

In giro trovi anche parecchie guide come questa https://www.theodo.fr/blog/2015/01/wrap-up-your-legacy-application-with-symfony/

L'approccio è semplice, pian piano sposti le rotte dal progetto legacy a sf2, quando l'applicazione fa match con una rotta "nuova" di sf2 viene utilizzta quella, altrimenti viene fatto fallback sul legacy.

Con questo approccio puoi spostare pian piano tutte le rotte un pò alla volta e scriverne di nuove, mantieni i vecchi test se esistono e ne scrivi di nuovi per la nuova app.

Ciao

Matteo

unread,
May 9, 2017, 4:53:45 PM5/9/17
to Gruppo symfony
Uelà Denis :)
Grazie, in realtà è tutta roba che avevo spulciato ma volevo capire se tutto quello "sbatti" era motivato.
La soluzione di Massimiliano mi sembra molto più comoda.
Sto spostando ugualmente le rotte una a una ma delegando il lavoro al webserver
Reply all
Reply to author
Forward
0 new messages