- PVSM.RU - https://www.pvsm.ru -

Yii 2.0.9

Вышла версия 2.0.9 PHP-фреймворка Yii. Минорный релиз содержит около 60 небольших улучшений и исправлений [1]. Инструкции по установке [2] можно найти на официальном сайте.

В данной версии есть два изменения, которые, хоть это и маловероятно, могут затронуть ваши приложения. Ознакомьтесь с UPGRADE.md [3].

Спасибо сообществу Yii [4] за пулл-реквесты и обсуждения.
Этот релиз вышел благодаря вам!

За разработкой фреймворка можно наблюдать на GitHub [5]. Также у нас есть Twitter [6]
и Facebook [7].

Далее мы рассмотрим самые интересные улучшения подробней. Полный список изменений и исправлений можно найти в CHANGELOG [1].

Фильтр action

yiibaseActionFilter теперь поддерживает маски для only и except, что полезно когда
фильтр навешивается на модуль или приложение целиком:

return [
    'as filter' => [
        'class' => 'appfiltersSomeFilter',
        'only' => [
            'particular/*', // все действия контроллера 'particular'
            '*/captcha', // все действия 'captcha' всех контроллеров
        ],
    ],
    // ...
];

Улучшения производительности

  • Улучшили производительность перевода сообщений при использовании базы данных. Добавили нужные индексы.
  • Схема Oracle теперь считывается быстрее.

Построитель схемы и миграции

Был улучшен построитель схемы, который используется в миграциях. Добавили новый метод null() чтобы указывать возможность записи null явно. Метод применяется автоматически, если значение по умолчанию — null.

$type = $this->string(42)->null();

Также добавили метод для своего SQL:

$type = $this->string(15)->notNull()->append('collate ascii_bin')->append('character set ascii');

Синтаксис команды для генерации миграций был немного изменён: _table и _column теперь обязательны:

./yii migrate/create create_user_table
./yii migrate/create add_name_column_to_user_table

Провайдеры данных и виджеты

Все улучшения в данном релизе касаются заголовков. В yiidataArrayDataProvider добавили свойство $modelClass, через которое можно указать модель для получения заголовков полей. В дополнение yiigridDataColumn, который определяет поведение для всех столбцов с данными, теперь пытается получить заголовки из filterModel грида.

Рефакторинг

Из интерфейса ManagerInterface RBAC выделили CheckAccessInterface, который может быть полезен при реализации своей проверки доступа.

yiiwebUser::loginByCookie() отрефакторен для большей расширяемости.

Asset-ы

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

namespace commonassets;
use yiiwebAssetBundle;

class ReactAsset extends AssetBundle
{
    public $sourcePath = null;

    public $js = [
        YII_ENV_DEV ? "//fb.me/react-15.0.1.js" : "//fb.me/react-15.0.1.min.js",
        YII_ENV_DEV ? "//fb.me/react-dom-15.0.1.js" : "//fb.me/react-dom-15.0.1.min.js",
        YII_ENV_DEV ? "//cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.js" : null,
    ];
}

Логирование

yiilogTarget::$logVars теперь можно настроить более тонко:

  • _SESSION — пишем глобальную переменную сессии. Всё как и было.
  • _SESSION.id — пишем только id из сессии.
  • !_SESSION.secret — не пишем ключ secret из сессии.

Логика такой фильтрации вынесена в yiihelpersArrayHelper::filter(). При необходимости можно использовать у себя.

Markdown

Тип синтаксиса по умолчанию для yiihelpersMarkdown теперь можно задать через $defaultFlavor.

Автор: SamDark

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/framework/154668

Ссылки в тексте:

[1] 60 небольших улучшений и исправлений: https://github.com/yiisoft/yii2/blob/2.0.9/framework/CHANGELOG.md

[2] Инструкции по установке: http://www.yiiframework.com/download/

[3] UPGRADE.md: https://github.com/yiisoft/yii2/blob/2.0.9/framework/UPGRADE.md

[4] сообществу Yii: https://github.com/yiisoft/yii2/graphs/contributors

[5] на GitHub: https://github.com/yiisoft/yii2

[6] Twitter: https://twitter.com/yiiframework

[7] Facebook: https://www.facebook.com/groups/yiitalk/

[8] Источник: https://habrahabr.ru/post/305432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best