Как обновить Yii 1.x до Yii 2.0

Как обновить версию Yii 1.x до последней версии Yii 2.0? Я использую ОС Ubuntu. Процесс обновления моего старого Yii до новой версии Yii версии 2.0?


person Pawan Shukla    schedule 02.10.2014    source источник
comment
это возможно или нет?   -  person Pawan Shukla    schedule 02.10.2014
comment
github.com/yiisoft/yii2/ blob/master/docs/guide/   -  person Codecat    schedule 02.10.2014
comment
изменения в классах огромны, и это не лучший способ тратить время на изменение всех классов, также изменяются методы кодирования.   -  person Developerium    schedule 02.10.2014


Ответы (1)


В руководстве по Yii2 есть отличная документация по этому вопросу.

Недавно я перенес пару умеренно сложных приложений с Yii 1.x на Yii 2.0. Есть два способа сделать это: вы можете запустить Yii 1.x и Yii 2 одновременно, см. using-yii-2-with-yii-1. Потом мигрировать по частям, хотя, возможно, это было довольно мучительно, как пытаться отстроить второй этаж, живя на третьем.

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

Важно обеспечить, чтобы открытый API (т. е. внешний интерфейс / пользовательский интерфейс / функциональность) оставался прежним. Всегда есть соблазн обновить функциональность или изменить функции во время переписывания, однако, если вы будете придерживаться строгой повторной реализации всего для Yii2, а затем рассмотрите возможность изменения своего API, ваша миграция будет более гладкой.

person Manquer    schedule 02.10.2014
comment
Возможно ли, чтобы вы оценили время переписывания на основе существующего кода Yii 1 по сравнению со временем, которое потребовалось для первоначальной сборки? Как вы думаете, это 1/3 времени? 3/4? - person Dan Ray; 29.03.2017
comment
это действительно зависит от того, насколько хорошо написано ваше приложение Yii 1, от того, хорошо ли спроектированы толстые модели и тонкие контроллеры, правильное разделение задач и т. д., если вы просто переписываете, это должно быть выполнимо менее чем за половину первоначального времени, предполагая макеты и пользовательский интерфейс будут одинаковыми. - person Manquer; 02.04.2017
comment
Мы делаем это прямо сейчас, но с немного другим подходом. Через несколько месяцев я объясню, как это оказалось, было много боли или нет, но концепция, стоящая за промежуточным классом (мы называем его Yang), который имитирует поведение Yii1, действуя просто как оболочка вокруг его вызовы, а затем мы соединяем различия с Yii2 в рамках этого одного класса. Опять же, не уверен, что это сработает идеально, но это лучшее, что мы могли придумать, чтобы поддерживать рабочие версии в рабочем состоянии, продолжая тестирование Yii2 и уменьшая расхождение git с основой проекта. - person dkellner; 20.03.2020