Yii 2.0.2
Команда PHP фреймворка рада сообщить о выходе версии 2.0.2. Инструкции по установке и обновлению можно найти по адресу https://www.yiiframework.com/download/.
Версия 2.0.2 является патч-релизом Yii 2.0 и содержит около 40 небольших улучшений и исправлений. Полный список изменений можно найти на GitHub. Спасибо всем, кто нам помогал подготовить этот релиз.
Если хотите следить за процессом разработки Yii 2 можно поставить звёздочку или использовать кнопку watch на странице проекта на GitHub. Также у нас есть Twitter и Facebook.
Рассмотрим наиболее значительные дополнения данного релиза.
Псевдонимы маршрута
До 2.0.2 Yii поддерживал псевдонимы путей и URL. Теперь можно задавать псевдонимы для маршрутов. После задания псевдонима маршрута его можно использовать при создании URL методами Url::to()
и Url::toRoute()
:
Данная возможность пригодится если предполагаются изменения в структуре маршрутов. При использовании псевдонима не придётся менять код создания URL.
Конфигурирование зависимых компонентов
Свойства многих компонентов принимают ID других компонентов, таких как yii\caching\DbCache::db
илиyii\web\CacheSession::cache
. Иногда для того, чтобы не создавать новый компонент для юнит-тестирования, вам может понадобиться задать такое свойство при помощи массива конфигурации:
Если вы разрабатываете новый класс, зависимый от внешних компонент, то можете использовать следующий код для предоставления аналогичной возможности:
Код выше позволяет настроить свойство db
одним из следующих значений:
- строкой с ID компонента приложения;
- объектом класса
yii\db\Connection
; - массивом конфигурации, который может использоваться для создания экземпляра
yii\db\Connection
.
Неизменяемый slug
Если вы используете yii\behaviors\SluggableBehavior
, то теперь можете присвоить новому свойству immutable
значение true
. В этом случае однажды созданный slug не будет меняться при повторном сохранении модели. Это полезно для SEO: однажды проиндексированное содержимое останется по тому же URL.
Автоматический выбор альтернативного языка виджетом DatePicker
Виджет yii\jui\DatePicker
теперь автоматически выбирает альтернативный язык, если указанный язык не найден. Это полезно в том случае, когда вы задаёте свойство language
как ID локали, который содержит регион и/или вариант. К примеру, если задать language
вde-DE
и виджет не найдёт языкового файла /ui/i18n/datepicker-de-DE.js
, то автоматически будет использован язык de
и файл/ui/i18n/datepicker-de.js
.
Передача ошибок валидации
Класс yii\base\Model
теперь содержит метод addErrors()
, который позволяет передать ошибки валидации одной модели в другую. К примеру, если у вас есть класс формы для модели ActiveRecord и вам необходимо передать ошибки валидации формы в модель ActiveRecord, сделать это можно так: