Миграция с одного PHP-фреймворка на другой


10

Я работаю с веб-компанией, которая приближается к тому моменту, когда ей, вероятно, потребуется переосмыслить продукт как V2 - из-за того, что он перерос некоторые из его основ и принципов V1, которые встроены практически во все, от модели данных до пользовательские интерфейсы. По разным причинам эта эволюция может включать миграцию из CakePHP (с которой был построен V1) в Symfony или Zend.

Я хотел бы попросить некоторые опытные взгляды на то, как люди могли управлять таким переходом для веб-сайта, который имеет значительный трафик и приносит доход. Я не хочу открывать дискуссию о плюсах и минусах различных фреймворков PHP или о том, почему может потребоваться такая миграция. Скорее, мне было бы очень интересно услышать, есть ли какие-то практические альтернативы созданию V2 с нуля вместе с V1 в течение нескольких месяцев и ограничению драгоценного времени кодирования на время этого интенсивного периода. Примером такой альтернативы может быть миграция приложения по частям в течение более длительного периода времени.

Я был бы признателен за любые мнения людей, которые могли бы справиться или были вовлечены в такие переходы.

Заранее спасибо.

Ответы:


2

Если это коммерческое приложение, являющееся бизнесом вашей компании, вам, возможно, будет лучше обходиться без сторонней платформы полностью. Затем, когда придет время для v3, вы больше не столкнетесь с этой же проблемой. И вы никогда не окажетесь в ситуации, когда вам придется постоянно корректировать свой код в ответ на обновления инфраструктуры. Фреймворки отлично подходят для быстрого запуска и запуска, но если это что-то а) ядро ​​вашего бизнеса и б) поддержание в долгосрочной перспективе, ценность фреймворка уменьшается.


1
Спасибо - Полезная перспектива, хотя фреймворки облегчают жизнь в связи с таким количеством вещей, что трудно принять идею их не использовать. Они также могут быть настроены и не всегда нуждаются в обновлении, если только в этом нет реальной необходимости (например, уязвимости в системе безопасности, отсутствие поддержки X и т. Д.). Принятие этого ответа, поскольку оно действительно о «решении», а не попытка решить, почему может потребоваться переключение платформы.
Том

1
Этот ответ не является решением вообще.
Джеймс

6

Сначала очень хорошо изучите новый фреймворк и убедитесь, что он будет соответствовать вашим потребностям, и что вы действительно придерживаетесь парадигм нового фреймворка. Вам придется выбросить много кода, и это нормально. Важно то, что вы используете новый фреймворк так, как он должен был быть использован, полностью используя его возможности и не привязываясь к образу мышления из вашего старого фреймворка. Не пытайтесь использовать Zend «путь CakePHP» *

Например, когда я перешел к использованию инфраструктуры MVC из предыдущих не-MVC, я не совсем понял, как должны работать модели, представления и контроллеры, и я написал какой-то ужасно выглядящий код, потому что не понимал нового способ делать вещи. Вы бы лучше придерживались устаревшего фреймворка, чем плохо написанного приложения на более качественном фреймворке.

* Я тоже не знаком с ними, поэтому не знаю, насколько они похожи / сопоставимы.


+1 заDon't try to use Zend "the CakePHP way
Тим Пост

вы знаете, когда люди говорят «+1», они обычно дают +1, голосуя за ответ;)
GSto

Извините, интернет-сбой. :) ПТС над почтовым голубем здесь.
Тим Пост

Спасибо за полезный ответ. Я баловался с Zend и CakePHP, и хотя я согласен с вашим комментарием, я не могу в принципе "принять" его, когда речь не идет о практическом опыте.
Том

5

Первое, что нужно учитывать, это то, что переписывать продукт с нуля - это то, что вы никогда не должны делать . Это особенно верно, когда текущая версия уже приносит вам деньги. По сути, вы собираетесь потратить 6 месяцев времени, просто чтобы вернуться туда, где вы были 6 месяцев назад. Только теперь у вас есть больше ошибок (или, по крайней мере, различных ошибок), повторно введены ошибки, которые уже были исправлены в старом коде, и вы на шесть месяцев отстали от того, где вы могли бы быть, если бы вы были добавление функций к старой базе кода.

CakePHP, Zend и Symphony в значительной степени одинаковы (то есть все они представляют собой фреймворки в стиле MVC поверх PHP), поэтому я не уверен, какое преимущество вы бы получили при переходе от одного к другому. Разумеется, в наборе функций есть различия, но стоит ли все это время возвращаться назад? За то время, которое вы потратите на переписывание с нуля в Zend или что-то еще, можете ли вы потратить столько же времени на добавление необходимых функций в Cake?

На мой взгляд, вам лучше будет медленно проводить рефакторинг существующего кода с течением времени, а не начинать с нуля с новым фреймворком.

Конечно, это только мое мнение. Я знаю, что заманчиво отбросить существующий (некрасивый, старый) код и начать с нуля, но для уже существующих продуктов, которые уже работают, обычно мало что можно выиграть и многое можно потерять.


Именно то, что я думал. Нет смысла переписывать здесь, потому что нет веских аргументов в пользу того, что это будет экономичное решение.
EricBoersma
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.