at0m1x
@at0m1x

Проект на ZF1 — как перейти на более новый фрейм?

Есть проект на ZF1, который до этого момента не перевели на более последнюю версию.

Для заказчика важно что бы проект работал - и программисты выполняли его задачи по развитию проекта. Т.е. выполняем задачи, проект улучшается, клиентам лучше/удобнее пользоваться, приходят новые клиенты и приносят доход, компания живет и все как бы хорошо и должно так быть.

Но, с точки зрения программистов, ZF1 - не совсем то что сейчас должно быть внутри проекта. Т.к. работать со старым фреймворком это как минимум деградация программистов, и как максимум когда то закончится поддержка ZF1.

Задача: перейти на более свежий фрейм.
Проблема: Полностью направить программистов на переписку проекта на новый фрейм нельзя, т.к. будет отставание от конкурентов.

Как быть?
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
@AlexndrNovikov
Solution Architect in Spiral Scout
Многое конечно зависит от специфики проекта, но примерный алгоритм действий в общем случае такой:

1. Выбираете новый фреймворк (или без него, на ваше усмотрение). Решаете делать новый функционал на нем и только на нем. ZF2/3 ли, Symfony, Laravel - разницы никакой, что вам нравится. Готовьтесь к тому, что придется бизнес логику переписать полностью (если интеграция с фреймворком была жесткой, как обычно делают PHP разработчики). Если была завязанность на абстракциях и модульная структура - вас можно поздравить, переход будет безболезненным и быстрым.
2. Приготовьтесь, что работы станет больше, чем просто на ZF1 задачи решать и дальше. Постарайтесь не просесть слишком по производительности.
3. Есть список URL, перенесенных в новое приложение. Решение о том, какому приложению отдать обработку запроса, находится в точке входа в приложение. (в index.php, например. Т.е если обычно там происходит просто инициализация приложения, то перед ним теперь должна быть бизнес-логика определения, какому приложению дать ход, этакий свой мини-роутер. Если переписано - отдаете новому приложению. по дефолту старому)
4. Если у вас не было тестов - именно тут вы начнете понимать, почему они были нужны :)

Ну и по факту получается, что у вас некоторое время будет 2 приложения, которые надо параллельно разрабатывать. Старое помечаете как немодифицируемое. Приходит задача - сначала переносите ее на новый фрейм, тестируете, если работает как надо - в своем мини-роутере направляете соответствующие запросы в новое приложение. Постепенно с 0% до 100% доводите - и можно выкидывать старый фреймворк и микро-роутер в индексе, вы переехали.

Повторюсь в поддержку ответов выше, бизнесу почти всегда откровенно все равно, что там под капотом, не эта технология приносит денег. Если вы не можете убедить начальство законсервироваться и все переписать - значит или в этом правда нет необходимости, или у вас недостаточно прокачан навык убеждения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@novrm
Никак. Ваш единственный путь - переписать все с нуля на ZF3.
Даже ZF2 не совместим с ZF3.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы