Обновления и релизы

Yii 2.0.13

2 ноября 2017 вышла новая обновлённая версия Yii 2.0.13 с 60-тью улучшениями и исправлениями косяков.

2 ноября 2017 вышла новая обновлённая версия Yii 2.0.13 с 60-тью улучшениями и исправлениями косяков. В этой версии есть изменения, которые могут повлиять на работу ваших существующих проектов, поэтому ознакамливаемся с изменениями и не забываем делать резервную копию проекта.

Как обычно смотрим описание процесса обновления - UPGRADE.md, а также список всех улучшений и исправлений - CHANGELOG.md

Шаблоны basic и advanced использую asset-packagist.org вместо Composer asset plugin. В конфиге приложения:

 $config = [
        ...
        'aliases' => [
            '@bower' => '@vendor/bower-asset',
            '@npm'   => '@vendor/npm-asset',
        ],
        ...
    ];

Начиная с этого релиза Yii 2 полностью совместим с PHP 7.2, который уже не за горами. В связи с этим класс Object переименован в BaseObject, так как в PHP 7.2 нельзя использовать слово object в названии классов. Теперь вместо yii\base\Object надо использовать yii\base\BaseObject. Ещё раз: версии Yii 2 до 2.0.13 несовместимы с PHP 7.2

Хелперы

В хелпере ArrayHelper появился метод setValue(), который пишет значение в ассоциативный массив
ArrayHelper::setValue($array, 'key.in', ['arr' => 'val']);

или так

ArrayHelper::setValue($array, ['key', 'in'], ['arr' => 'val']);

Ещё один метод в релизе — StringHelper::floatToString(). Он конвертирует float в string, но, в отличие от нативного кастинга, всегда использует точки как разделитель целой части.

RBAC

yii\rbac\DbManager::checkAccess() перестал делать лишние запросы при получении назначений. Если вы хранили иерархию в базе, производительность после обновления, вероятно, вырастет. Также в таблицы был добавлен дополнительный индекс, что сделало сами запросы быстрее.

Formatter

В Formatter добавлены следующие методы:

  • asWeight() форматирует число как вес, то есть "12 kilograms".
  • asShortWeight() форматирует число как вес в короткой форме, то есть "12 kg".
  • asLength() форматирует число как длину, то есть "12 meters".
  • asShortLength() форматирует число как длину в короткой форме, то есть "12 m".


Также обновлены некоторые расширения.