2012-05-22 15 views
9

Tengo un gran sitio que ha sido escrito (de una manera muy mala) en Symfony 1.4 ahora, me han pedido que realice algunos cambios sustanciales en el flujo de navegación, agregue algunas características y así sucesivamente ... teniendo en cuenta el esfuerzo, me preguntaba si sería mejor tomar la decisión radical de portar todo el sitio web a Symfony 2.0, pero no estoy seguro de lo difícil que podría ser.Portando un sitio web desde Symfony 1.4 a 2.0

¿Alguien ha hecho esto antes?

¿Tiene alguna sugerencia para hacer que los patrones sigan, o tutoriales o doc o lo que sea?

Respuesta

8

Puede envolver su proyecto heredado en un nuevo proyecto sf2, usando this bundle. De esta forma, podrá migrar su proyecto de una en una, y se podrán desarrollar nuevas funcionalidades con sf2 tan pronto como obtenga la envoltura para que funcione. Usted puede estar interesado por this post about migrating

+0

se ve bien, también necesito pasar de la vieja propulsión a la nueva doctrina amigable con los seres humanos2, así que esto realmente podría venir útil :) – holographix

4

Así es como me gustaría ir al respecto:

Es necesario aprender y estudiar algunas cosas primero:

  • fundamentos HTTP
  • espacios de nombres de PHP, que son muy usadas documentación
  • Symfony2
  • Documentación de Symfony2
  • Documentación de Symfony2
  • documentación de PHPUnit

Entonces, cuando llegue el cuelgue de Symfony2, tiene que averiguar lo que la reutilización de su viejo proyecto:

modelos, lógica de negocio? ¿Usaste Doctrine en Symfony? En caso afirmativo, mira cómo portar tus entidades a Doctrine2 y aprende sobre las diferencias. Si usó Propel, consideraría cambiar a Doctrine2 y no usar PropelBundle, al menos hasta que se acostumbre a Symfony2. Puede encontrar una mejor documentación y código de muestra para Doctrine2.

También necesita convertir sus antiguas clases de ayudantes a los servicios de Symfony2.

Reproducciones? Symfony2 usa Twig como motor de plantillas, pero podría usar PHP puro.

Controladores? Esto debería ser similar a Symfony. El flujo de Symfony2 coincide con el flujo HTTP, lo que significa que obtiene un objeto Request y debe volver a generar un objeto Response.

Realmente depende de qué tan bien estructurado esté nuestro viejo proyecto. Symfony2 es una bestia completamente diferente de 1.0-1.4. Probablemente no lo llamaría un puerto, sino una reescritura; sin embargo, si su proyecto anterior está bien estructurado, probablemente podría reutilizarlo un poco.

Sin ver realmente su código, es imposible dar una buena respuesta sobre lo difícil que sería. Es muy factible, pero no hay una ruta fácil. Symfony2 es, en mi humilde opinión, el camino del futuro para los proyectos de PHP y al final obtendrá un proyecto que es mucho más fácil de mantener y de brindar soporte.

+0

Sí, eso es lo mismo que estoy pensando ... Estoy de acuerdo en que esto será una reescritura en lugar de un puerto, porque el proyecto actual (en Symfony 1.4) es una pila de tierra/código de espagueti y programación de novato. fue hecho por personas que no sabían lo que hicieron. solo piense que me tomó más de 2 semanas descubrir la lógica enfermiza detrás del código estructurado feo ... una verdadera pesadilla. y ahora que tengo que ponerle las manos encima de nuevo, estoy realmente tentado de hacer una reescritura en Symfony 2.0 – holographix

+1

Yo diría que sí, ahorrará tiempo más adelante, tener un proyecto real es una buena fuerza motriz para aprender algo nuevo. – cvaldemar

+0

sí, estás taaaaaaaaaaaaaaan :) ahora ya veremos. si el presupuesto nos da el permiso ... seguramente me quedaré con el 2.0 (con gran placer) – holographix

Cuestiones relacionadas