@ipdesign
UI/UX ДИЗАЙНЕР

Как перенести проект с Codeigniter на Yii2?

Всем привет!
По сути, есть готовый проект на Codeigniter.
Как безболезненно его портировать на Yii2?
В целом понятно, что нужно перебрать контроллеры и модели, но может есть какая-то методика или кто-то уже сталкивался с подобным?
Самый большой вопрос о замене коробочных методов. В общем буду рад любой инфе
  • Вопрос задан
  • 576 просмотров
Решения вопроса 3
index0h
@index0h
PHP, Golang. https://github.com/index0h
Как безболезненно его портировать на Yii2?

Безболезненно - никак, от слова "совсем".

Переписываете поблочно. Вполне возможно, что придется пошаманить с базовой инициализацией и она будет общая. В старом коде можно использовать новый, но ни в коем случае не наоборот.

Самый большой вопрос о замене коробочных методов.

Пишите обертки для использования в старом коде нового.
Ответ написан
@AlikDex
Приходилось делать такое =)
Как я делал. Сначала переработал бд, затем переписал CI под эту бд. Поставил все на рабочий сайт. Потихоньку начал переделывать морду сайта ипользуя Yii2 (на зеркале) не добавляя ничего нового. Просто повторяя тот старый функционал(благо его немного). Когда морда была закончена и протестирована - поставил ее. Админка уехала на домен 3 уровня и осталась на CI. Чуть позже также была переделана с минимальным необходимым и установлена как рабочая.

Самым трудным было переписать код игнайтер под новую бд, т.к. бесил до состояния "аж трисет!". Но если базу не надо переделывать, то тут вообще нет проблем. Просто брать и пилить все по новой. А старое пусть работает пока так.

Совмещать 2 фреймворка, как написал index0h: это по моему черезчур усложнено. Тут главное не торопится =) Хотя, наверное, смотря какой проект...
Ответ написан
Комментировать
@xfg
Нужно писать бизнес-логику независимой от фреймворка. Обкладывая доменную модель интерфейсами со всех сторон. Тогда при переезде на любой другой фреймворк переписать придется только реализации этих интерфейсов, контроллеры фреймворка, которые должны состоять из 2-3 строк кода и вьюшки. Можете погуглить и посмотреть реализации DDD архитектур например.

Но сейчас нет выбора, нужно пересматривать каждый кусок кода, который делает обращения к codeigniter. То есть по-сути заново написать проект. На Yii2 тоже 99% пишут зависимый от фреймворка код. Можно перед переездом почитать что-то по архитектуре и сделать БЛ максимально независимой от фреймворка. Чтобы в будущем здесь не появился очередной вопрос "Как перенести проект с Yii2 на Symfony?".

Но не всегда это оправдано. Это не быстро и не для простых crud проектов. Поэтому возможно будет выгоднее с каждым переездом на новый фреймворк переписывать проект, если он относительно не сложный, чем пытаться выстроить архитектуру вокруг всего этого.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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