Я работаю с веб-компанией, которая приближается к тому моменту, когда ей, вероятно, потребуется переосмыслить продукт как V2 - из-за того, что он перерос некоторые из его основ и принципов V1, которые встроены практически во все, от модели данных до пользовательские интерфейсы. По разным причинам эта эволюция может включать миграцию из CakePHP (с которой был построен V1) в Symfony или Zend.
Я хотел бы попросить некоторые опытные взгляды на то, как люди могли управлять таким переходом для веб-сайта, который имеет значительный трафик и приносит доход. Я не хочу открывать дискуссию о плюсах и минусах различных фреймворков PHP или о том, почему может потребоваться такая миграция. Скорее, мне было бы очень интересно услышать, есть ли какие-то практические альтернативы созданию V2 с нуля вместе с V1 в течение нескольких месяцев и ограничению драгоценного времени кодирования на время этого интенсивного периода. Примером такой альтернативы может быть миграция приложения по частям в течение более длительного периода времени.
Я был бы признателен за любые мнения людей, которые могли бы справиться или были вовлечены в такие переходы.
Заранее спасибо.
Сначала очень хорошо изучите новый фреймворк и убедитесь, что он будет соответствовать вашим потребностям, и что вы действительно придерживаетесь парадигм нового фреймворка. Вам придется выбросить много кода, и это нормально. Важно то, что вы используете новый фреймворк так, как он должен был быть использован, полностью используя его возможности и не привязываясь к образу мышления из вашего старого фреймворка. Не пытайтесь использовать Zend «путь CakePHP» *
Например, когда я перешел к использованию инфраструктуры MVC из предыдущих не-MVC, я не совсем понял, как должны работать модели, представления и контроллеры, и я написал какой-то ужасно выглядящий код, потому что не понимал нового способ делать вещи. Вы бы лучше придерживались устаревшего фреймворка, чем плохо написанного приложения на более качественном фреймворке.
* Я тоже не знаком с ними, поэтому не знаю, насколько они похожи / сопоставимы.
источник
Don't try to use Zend "the CakePHP way
Первое, что нужно учитывать, это то, что переписывать продукт с нуля - это то, что вы никогда не должны делать . Это особенно верно, когда текущая версия уже приносит вам деньги. По сути, вы собираетесь потратить 6 месяцев времени, просто чтобы вернуться туда, где вы были 6 месяцев назад. Только теперь у вас есть больше ошибок (или, по крайней мере, различных ошибок), повторно введены ошибки, которые уже были исправлены в старом коде, и вы на шесть месяцев отстали от того, где вы могли бы быть, если бы вы были добавление функций к старой базе кода.
CakePHP, Zend и Symphony в значительной степени одинаковы (то есть все они представляют собой фреймворки в стиле MVC поверх PHP), поэтому я не уверен, какое преимущество вы бы получили при переходе от одного к другому. Разумеется, в наборе функций есть различия, но стоит ли все это время возвращаться назад? За то время, которое вы потратите на переписывание с нуля в Zend или что-то еще, можете ли вы потратить столько же времени на добавление необходимых функций в Cake?
На мой взгляд, вам лучше будет медленно проводить рефакторинг существующего кода с течением времени, а не начинать с нуля с новым фреймворком.
Конечно, это только мое мнение. Я знаю, что заманчиво отбросить существующий (некрасивый, старый) код и начать с нуля, но для уже существующих продуктов, которые уже работают, обычно мало что можно выиграть и многое можно потерять.
источник