2012-05-22 23 views
9

Ho un sito enorme che è stato scritto (in pessimo modo) in symfony 1.4 ora, mi è stato chiesto di apportare alcune modifiche sostanziali al flusso di navigazione, aggiungere alcune funzionalità e così via .. considerando lo sforzo, mi stavo chiedendo se sarebbe stato meglio prendere la decisione radicale di portare l'intero sito Web a symfony 2.0, ma non sono sicuro di quanto possa essere difficile.Porting di un sito web da Symfony 1.4 a 2.0

Qualcuno l'ha mai fatto prima?

Avete qualche suggerimento da fare per i modelli da seguire, o tutorial o doc o qualsiasi altra cosa?

risposta

8

È possibile avvolgere il progetto esistente in un nuovo progetto sf2 utilizzando this bundle. In questo modo, sarai in grado di migrare il tuo progetto un pezzo alla volta, e nuove funzionalità potrebbero essere sviluppate con sf2 non appena il wrapper funzionerà. Si può essere interessati da this post about migrating

+0

sembra buono, ho anche bisogno di passare dalla propulsione ol'dirty alla nuova dottrina human-friendly2, quindi questo potrebbe davvero venire utile :) – holographix

4

Ecco come vorrei andare a questo proposito:

Hai bisogno di imparare e studiare alcune cose prima:

  • fondamentali HTTP
  • namespace PHP, che sono pesantemente utilizzati
  • Symfony2 documentazione
  • Documentazione Symfony2
  • Documentazione Symfony2
  • documentazione PHPUnit

Poi, quando si ottiene il blocco di Symfony2, è necessario scoprire che cosa riutilizzare dal vecchio progetto:

modelle, la logica di business? Hai usato Doctrine in symfony? Se sì, guarda come trasferire le tue entità su Doctrine2 e scopri le differenze. Se hai usato Propel, vorrei passare a Doctrine2 e non usare PropelBundle, almeno fino a quando non ti abitui a Symfony2. Puoi trovare documentazione e codice di esempio migliori per Doctrine2.

È inoltre necessario per convertire i vecchi classi aiutanti ai servizi di Symfony2.

Visualizzazioni? Symfony2 utilizza Twig come motore di templating, ma si può andare con PHP puro.

controllori? Questo dovrebbe sembrare in qualche modo simile a symfony. Il flusso di Symfony2 corrisponde al flusso HTTP, il che significa che si ottiene un oggetto Request e si deve riattivare un oggetto Response.

in realtà dipende da come ben strutturato il nostro vecchio progetto. Symfony2 è una bestia completamente diversa dalla 1.0-1.4. Probabilmente non lo chiamerei porto, ma una riscrittura, tuttavia, se il tuo vecchio progetto è ben strutturato probabilmente potresti riutilizzarlo un po '.

Senza effettivamente vedere il codice, è impossibile dare una buona risposta su quanto sarebbe difficile. È molto fattibile, ma non esiste un percorso facile. Symfony2 è, IMHO, la via del futuro per i progetti PHP e alla fine otterrai un progetto che è molto più facile da mantenere e supportare.

+0

sì, è la stessa cosa che sto pensando .. Sono d'accordo che questo sarà una riscrittura piuttosto che una porta, perché il progetto attuale (in symfony 1.4) è un mucchio di sporcizia/codice spaghetti e programmazione noob. è stato fatto da ppl che non sapeva cosa hanno fatto. basti pensare che mi ci sono voluti più di 2 settimane solo per capire le logiche malate dietro il brutto codice strutturato .. un vero incubo. e ora che devo rimetterlo di nuovo in mano sono davvero tentato di farlo riscrivere in symfony 2.0 – holographix

+1

Direi di provarlo, risparmierai tempo dopo, per favore avere un progetto reale è un buona forza trainante per imparare qualcosa di nuovo. – cvaldemar

+0

sì, sei proprio perfetto :) ora vedremo. se il budget ci dà il permesso .. Io sicuramente mi atterro al 2.0 (con piacere gr8) – holographix