Очень долго настраивался и заставлял себя, чтобы заняться апгрейдом своего сайта на Yii 2.
И вот, после полутора месяцев вечернего кодинга (перемежаемого тренировками, празднованием дней рождения, страданием от бессонницы и т.п.) позвольте представить: yktoo.com 2.0.
Настоящий сайт построен на Yii framework 2.0 и Bootstrap 3, с парой-тройкой дополнительных расширений. Применение Bootstrap позволило реализовать адаптивный дизайн, так что страницы должны хорошо масштабироваться и нормально выглядеть на любых устройствах, от мобильных телефонов до десктопов.
Немного изменена и структура сайта: лента блога теперь на главной странице сайта, другие разделы тоже реорганизованы. В связи с этим RSS-ридеры могли заново показать все последние посты блога.
Отдельно стоит упомянуть про Yii. По сравнению с первой версией, Yii 2.x представляет собой просто огромный шаг вперёд: уже хотя бы тем, что здесь используется PHP 5.4+.
К сожалению, шаг этот сделан прямо по головам программистов, поскольку совместимость между 1.x и 2.x равна примерно нулю. Разумеется, в документации об этом прямо говорится, но начинаешь осознавать масштаб проблемы, только взявшись за работу.
Переписывать или как минимум проверять нужно каждую строчку. Не совпадает практически ничего: все классы переименованы и разложены по неймспейсам, изменены названия методов и иерархия наследования, вся фундаментальная архитектура перекроена вдоль и поперёк. Авторы написали раздел о миграции с 1.1 на 2.0, но количество содержащейся в нём информации по сравнению с тем, что вам потребуется — это примерно как «Федорино горе» рядом с «Войной и миром». Поэтому каждый вопрос приходится гуглить, например, что CHtml::link()
называется ныне \yii\helpers\Html::a()
. Со временем миграция, конечно, начинает идти быстрее, но поначалу процесс этот весьма болезненный. Самой замороченной была процедура миграции объектов БД (модели и Active Record). Я думаю, было бы замечательно, если бы сайт имел раздел готовых рецептов для горемык навроде меня.
В остальном же Yii заслуживает самой высокой оценки — архитектура, реализация и документация просто восхитительны (во всяком случае для такого уродца как PHP). Модульная архитектура (asset bundles) уже сама по себе решает множество проблем, возникавших в первой версии.
В общем, заметите какую-нибудь глупую ошибку — пишите через форму обратной связи, буду премного обязан. ■
Комментарии