Yii 2.0.9

Вийшла версія 2.0.9 PHP-фреймворку Yii. Мінорний реліз містить близько 60 невеликих поліпшень і виправлень. Інструкції з установки можна знайти на офіційному сайті.
У даній версії є два зміни, які, хоч це й малоймовірно, можуть зачепити ваші програми. Перегляньте UPGRADE.md.
Спасибі спільноті Yii за пулл-реквесты і обговорення.
Цей реліз вийшов завдяки вам!
За розробкою фреймворку можна спостерігати на GitHub. Також у нас є Twitter
Facebook.

Далі ми розглянемо найцікавіші поліпшення детальніше. Повний список змін і виправлень можна знайти на CHANGELOG.
Фільтр action
\yii\base\ActionFilter
тепер підтримує маски для
only
та
except
, що корисно, коли
фільтр навішується на модуль або додаток цілком:
return [
'as filter' => [
'class' => 'app\filters\SomeFilter',
'only' => [
'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

Провайдери даних і віджети
Всі покращення у даному релізі стосуються заголовків. В
\yii\data\ArrayDataProvider
додали властивість
$modelClass
, через яке можна вказати модель для отримання заголовків полів. На додаток
\yii\grid\DataColumn
, який визначає поведінку для всіх стовпців даних, тепер намагається отримати заголовки
filterModel
гріду.
Рефакторинг
З інтерфейсу
ManagerInterface
RBAC виділили
CheckAccessInterface
, який може бути корисний при реалізації своєї перевірки доступу.
\yii\web\User::loginByCookie()
отрефакторен для більшої розширюваності.
Asset-s
При перерахуванні файлів в пакетах asset-ів тепер можна задати шлях в
null
. В цьому випадку файли не реєструються. Це корисно, наприклад, для реєстрації додаткових файлів для робочого оточення:
namespace common\assets;
use yii\web\AssetBundle;

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,
];
}

Логування
\yii\log\Target::$logVars
тепер можна налаштувати більш тонко:
  • _SESSION
    — пишемо глобальну змінну сесії. Все як і було.
  • _SESSION.id
    — пишемо тільки
    id
    з сесії.
  • !_SESSION.secret
    — не пишемо ключ
    secret
    з сесії.
Логіка такої фільтрації винесена в
\yii\helpers\ArrayHelper::filter()
. При необхідності можна використовувати у себе.
Markdown
Тип синтаксису за замовчуванням
yii\helpers\Markdown
тепер можна задати через
$defaultFlavor
.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.