Yii 2.0.9

в 14:55, , рубрики: framework, php, yii

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

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

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

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

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

Фильтр 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

Источник

Поделиться новостью

* - обязательные к заполнению поля