Migrar de un framework PHP a otro


10

Estoy trabajando con una empresa web que se está acercando a un punto en el que es probable que deba repensar el producto como un V2, debido a la superación de algunos de sus fundamentos y principios V1 que se han incorporado en prácticamente todo, desde el modelo de datos hasta el interfaces de usuario. Por varias razones, esta evolución podría implicar una migración desde CakePHP (con el que se ha construido el V1) a Symfony o Zend.

Me gustaría pedir algunos puntos de vista experimentados sobre cómo las personas podrían haber logrado una transición como esta para un sitio web que tiene un tráfico significativo y genera ingresos. No quiero abrir una discusión sobre los pros y los contras de los diferentes marcos PHP, o por qué podría ser necesaria esta migración. Por el contrario, estaría muy interesado en saber si existen algunas alternativas prácticas para construir esencialmente un V2 desde cero junto con el V1 durante un par de meses, y bloquear el valioso tiempo de codificación durante este período intenso. Un ejemplo de tal alternativa podría ser migrar una aplicación en partes durante un período de tiempo más largo.

Estaría agradecido por cualquier punto de vista de personas que podrían haber manejado o participado en tales transiciones.

Gracias por adelantado.

Respuestas:


2

Si se trata de una aplicación comercial que es el negocio de su empresa, es mejor que no tenga un marco de terceros por completo. Luego, cuando llegue el momento de v3, no volverá a enfrentar este mismo problema. Y nunca se encontrará en una situación en la que tenga que seguir ajustando su código en respuesta a las actualizaciones del marco. Los marcos son excelentes para poner las cosas en marcha rápidamente, pero si esto es algo a) esencial para su negocio yb) mantenido a largo plazo, el valor del marco disminuye.


1
Gracias - Perspectiva útil, aunque los marcos hacen la vida más fácil con respecto a tantas cosas que es difícil entretener la idea de no usarlas. También se pueden personalizar y no siempre necesitan actualizarse a menos que sea realmente necesario (por ejemplo, vulnerabilidades de seguridad, falta de soporte para X, etc.). Al aceptar esta respuesta, se trata realmente de una "solución" en lugar de tratar de abordar por qué podría ser necesario el cambio de marco.
Tom

1
Esta respuesta no es una solución en absoluto.
James

6

Primero, aprenda muy bien el nuevo marco y asegúrese de que satisfaga sus necesidades, y que realmente entienda los paradigmas del nuevo marco. Tendrás que tirar mucho código, y eso está bien. Lo importante es que está utilizando el nuevo marco de la manera en que estaba destinado a ser utilizado, aprovechando al máximo sus características y no está vinculado a las formas de pensar de su antiguo marco. No intentes usar Zend "al estilo CakePHP" *

Por ejemplo, cuando pasé a usar MVC framework de anteriores que no eran MVC, realmente no entendí cómo se suponía que los modelos, las vistas y los controladores funcionaban, y escribí un código de aspecto terrible porque no entendía el nuevo forma de hacer las cosas. Sería mejor quedarse con un marco antiguo inferior que tener una aplicación mal escrita en un marco mejor.

* Tampoco estoy familiarizado, así que no sé qué tan similares / comparables son.


+1 paraDon't try to use Zend "the CakePHP way
Tim Post

ya sabes, cuando las personas dicen '+1', generalmente dan el +1 votando la respuesta;)
GSto

Lo siento, el hipo de internet. :) TCP sobre paloma mensajera aquí.
Tim Post

Gracias por la útil respuesta. He incursionado tanto en Zend como en CakePHP, y aunque estoy de acuerdo con tu comentario, por principio no puedo "aceptarlo" cuando no se trata de una experiencia práctica al hablar.
Tom

5

Lo primero que debe considerar es que reescribir un producto desde cero es algo que nunca debe hacer . Esto es particularmente cierto cuando la versión actual ya le está haciendo ganar dinero. Básicamente, pasarás 6 meses de tiempo, solo para volver a donde estabas hace 6 meses. Solo ahora, tiene más errores (o al menos, errores diferentes ), errores reintroducidos que ya se habían corregido en el código anterior, y tiene seis meses de retraso en donde podría haber estado, si hubiera estado agregando características a la antigua base de código.

CakePHP, Zend y Symphony son en gran medida iguales (es decir, todos son marcos de estilo MVC además de PHP), por lo que no estoy seguro de qué ventaja tendría pasar de uno a otro. Ciertamente hay diferencias en el conjunto de características, pero ¿realmente valen la pena retroceder todo ese tiempo? Por la cantidad de tiempo que pasaría reescribiendo desde cero en Zend o lo que sea, ¿podría pasar la misma cantidad de tiempo agregando las funciones requeridas a Cake?

En mi opinión, sería mejor refactorizar lentamente su código existente con el tiempo, en lugar de comenzar completamente desde cero con un nuevo marco.

Por supuesto, esta es solo mi opinion. Sé que es tentador abandonar el código existente (feo, antiguo) y comenzar desde cero, pero para los productos establecidos que ya están funcionando, generalmente hay poco que ganar y mucho que perder.


Exactamente lo que estaba pensando. No tiene sentido reescribir aquí, porque no parece haber un caso sólido de que sea una decisión económica.
EricBoersma
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.