Старт с yii2

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

Первая приятная возможность - теперь не нужно всё скачивать руками и куда-то распаковывать, теперь всё работает с композером:

php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic  

Следующая приятная новость - конфиги в basic-приложении сразу сделаны так чтобы секция db подключалась одна и таже сразу в web и console приложения. Надеюсь в новом yii гибкие конфиги будет писать проще и не придется городить собственные решения для этого. На мой взгляд в первом yii это была довольно больная тема.

Приложение без проблем установилось и прекрасно работает под встроенным пхповым сервером:

php -S localhost:8000  

Естественном мне понравилось что из коробки сразу есть твиттер бутстрап и приложение свёрстано на нём.

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

Механизм миграций не изменился по сравнению с первой версией. Как и раньше наследуемся от класса \yii\db\Migration у которого есть набор методов для работы с базой, которые проксируются на соответствующие методы класса \yii\db\Command.

Единственный нюанс, теперь чтобы yii подставлял префикс к имени таблицы в запросах его нужно указать не просто в фигурных скобках, а ещё и с символом процента в начале - {{%my_table_name}} заменится на tbl_my_table_name.

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

Модель сгенерировалась как и раньше, понадобилось только указать имя таблицы. А вот CRUD-генератор изменился. Кроме имени класса модели от меня потребовали ещё задать имя для некой Search Model. Имя для контроллера для контроллера тоже просит указать руками. Теперь не генерится вьюха admin, вместо этого предлагают выбрать какой виджет будет на индексной странице ListView или GridView.

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