Вторая версия отличного php-фреймворка yii2 уверенно развивается и стабильные версии выходят регулярно раз в месяц. Новая версия является патч-релизом yii 2.0 и содержит около 40 улучшений и исправлений. Полный список можно найти на гитхабе.
Инструкции по установке или обновлению до последней версии можно найти на официальном сайте.
Самые значимые изменения
Алиасы маршрутов
В предыдущих версиях, фреймворк поддерживал только алиасы для путей файлов и url. Однако, теперь добавлена поддержка алиасов для маршрутов. На практике это означает, что алиас можно использовать маршрута при формировании ссылки. Алиасы маршрутов поддерживаются методами Url::to() и Url::toRoute(). Пример использования:
use yii\helpers\Url; Yii::setAlias('@posts', 'post/index'); // /index.php?r=post/index echo Url::to(['@posts']); echo Url::toRoute('@posts');
Алиасы маршрутов удобно использовать когда в процессе разработки маршрут может измениться и тогда не будет надобности в поиске всех точек использования изменившегося маршрута.
Конфигурация компонентов
Многие компоненты имеют свойства, которые необходимо задать для инициализации конкретного экземпляра компонента. Иногда, требуется использование компонента без его описания в настройках приложения. В таких случаях параметры компонента можно задать массивом при его инициализации:
$cache = Yii::createObject([ 'class' => 'yii\caching\DbCache', 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => '...', ], ]);
При создании нового класса, зависящего от внешнего компонента, можно воспользоваться следующим способом:
use yii\base\Object; use yii\db\Connection; use yii\di\Instance; class MyClass extends Object { public $db = 'db'; public function init() { $this->db = Instance::ensure($this->db, Connection::className()); } }
Постоянные ссылки
При использовании yii\behaviors\SluggableBehavior, с помощью свойства immutable, можно запретить последующее изменение ссылки. Даже при изменении значения атрибута value, ссылка останется неизменной, при immutable = true. Обработка ошибок DatePicker Теперь yii\jui\DatePicker поддерживает language fallback. Удобно, когда при указании локали идентификатором, например de-DE, виджет не сможет найти файл /ui/i18n/datepicker-de-DE.js, он попытается открыть фал /ui/i18n/datepicker-de.js.
Передача ошибок валидации
Класс yii\base\Model теперь имеет удобный метод addErrors(), который позволяет передавать ошибки валидации из одной модели в другую. Для примера, возьмем класс модели формы, содержащий класс модели ActiveRecord. Ошибки валидации формы можно передать классу ActiveRecord:
use yii\base\Model; use yii\db\ActiveRecord; class MyForm extends Model { public $model; public function process() { // ... if (!$this->validate()) { $this->model->addErrors($this->getErrors()); // .... } } }
Вместо заключения
Продолжаю следить за развитием yii2. В данный момент в работе 2 небольших проекта. Использование такого инструмента, как yii 2.0, упрощает многие моменты и, в тоже время, заставляет расти вместе с фреймворком.