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

Yii 2.0.1

Yii 2.0.1 - 1

Нам очень приятно объявить о выходе версии 2.0.1 PHP фреймворка Yii. Подробнее о том, как установить эту версию или обновиться на неё читайте на странице http://www.yiiframework.com/download/ [1].

Версия 2.0.1 — патч-релиз ветки 2.0, содержащий около 90 небольших улучшений и исправлений. Полный список изменений можно почитать на GitHub [2]. Кроме улучшений самого кода была проделана значительная работа по документации. Особенно по полному руководству по Yii 2.0 [3], переводимому на множество языков. Спасибо всем, кто подарил нам часть своего драгоценного времени [4] улучшая Yii.

За разработкой фреймворка можно следить, поставив звёздочку или нажав watch на странице проекта на GitHub [5]. Также можно подписаться на Twitter [6] и присоединиться к группе в Facebook [7].

Далее будут рассмотрены самые важные изменения.

Принудительная конвертация ресурсов

Через asset bundle можно конвертировать ресурсы автоматически. Например, LESS в CSS. Тем не менее, отслеживать все изменения в исходных файлах довольно затратно. Особенно когда сделан импорт одного ресурса в другом. В подобных случаях можно конвертировать ресурсы принудительно. Для этого компонент assetManager настраивается следующим образом:

[
    'components' =>  [
        'assetManager' => [
            'converter' => [
                'forceConversion' => true,
            ]
        ]
    ]
];

Выбор подзапросов

Построитель запросов поддерживает подзапросы во многих местах. Теперь и в SELECT:

$subQuery = (new Query)->select('COUNT(*)')->from('user');
$query = (new Query)->select(['id', 'count' => $subQuery])->from('post');
// $query represents the following SQL:
// SELECT `id`, (SELECT COUNT(*) FROM `user`) AS `count` FROM `post`

Предотвращение повторной загрузки CSS при AJAX запросах

В Yii уже были средства для предотвращения повторной загрузки JavaScript при AJAX запросах. Теперь есть и для CSS. Для использования данной возможности требуется регистрация YiiAsset как показано ниже:

yiiwebYiiAsset::register($view);

Очистка кеша схемы базы данных

Мы добавили новую команду для очистки кеша схемы базы данных. Она будет полезна для выкладывания кода на рабочие серверы. Команда запускается следующим образом:

yii cache/flush-schema

Улучшения в хелперах

Метод Html::cssFile() теперь поддерживает опцию noscript, предназначенную для оборачивания генерируемого тега link в тег noscript. Данную опцию также можно использовать при настройке AssetBundle::cssOptions. К примеру:

use yiihelpersHtml;
echo Html::cssFile('/css/jquery.fileupload-noscript.css', ['noscript' => true]);

Ранее StringHelper::truncate() поддерживал обрезку простой строки до заданного количества символов или слов. Теперь поддерживается и HTML, который при обрезке остаётся полностью валидным.

Класс Inflector обзавёлся новым методом sentence(), собирающим массив слов в предложение. Например:

use yiihelpersInflector;

$words = ['Spain', 'France'];
echo Inflector::sentence($words);
// output: Spain and France

$words = ['Spain', 'France', 'Italy'];
echo Inflector::sentence($words);
// output: Spain, France and Italy

$words = ['Spain', 'France', 'Italy'];
echo Inflector::sentence($words, ' & ');
// output: Spain, France & Italy

Улучшения расширения Bootstrap

CSS фреймворк Bootstrap обновлён до версии 3.3.x. Если вы хотите использовать старую версию, можете указать её явно в composer.json проекта.

В виджеты Bootstrap добавлены новые свойства, подробно описанные в документации по API [8].

  • yiibootstrapButtonDropdown::$containerOptions.
  • yiibootstrapModal::$headerOptions.
  • yiibootstrapModal::$footerOptions.
  • yiibootstrapTabs::renderTabContent.
  • yiibootstrapButtonDropdown::$containerOptions.

Улучшения поддержки MongoDB

Операция findAndModify теперь поддерживается как yiimongodbQuery, так и yiimongodbActiveQuery. К примеру:

User::find()->where(['status' => 'new'])->modify(['status' => 'processing']);

Запросы к MongoDB теперь отображаются на отладочной панели. Чтобы её использовать следуют настроить отладчик следующим образом:

[
    'class' => 'yiidebugModule',
    'panels' => [
        'mongodb' => [
            'class' => 'yiimongodbdebugMongoDbPanel',
        ]
    ],
]

Улучшения расширения Redis

Расширение Redis теперь поддерживает работу через сокеты UNIX, что часто на 50% быстрее работы через TCP. Соединение настраивается следующим образом:

[
    'class' => 'yiiredisConnection',
    'unixSocket' => '/var/run/redis/redis.sock',
]

Автор: SamDark

Источник [9]


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

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

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

[1] http://www.yiiframework.com/download/: http://www.yiiframework.com/download/

[2] можно почитать на GitHub: https://github.com/yiisoft/yii2/blob/2.0.1/framework/CHANGELOG.md

[3] полному руководству по Yii 2.0: http://www.yiiframework.com/doc-2.0/guide-index.html

[4] кто подарил нам часть своего драгоценного времени: 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] документации по API: http://www.yiiframework.com/doc-2.0/ext-bootstrap-index.html

[9] Источник: http://habrahabr.ru/post/245227/