Захотел сделать небольшой проект для себя и решил использовать эту возможность для того чтобы наконец поближе познакомиться с 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, практически не пришлось смотреть в документацию.