- PVSM.RU - https://www.pvsm.ru -
Команда Yii зарелизила версию 1.1.11, в которую вошли более ста улучшений и багфиксов.
Этот релиз особенный потому как является первым с тех пор, как код Yii мигрировал на GitHub [1]. Сообщество восприняло миграцию очень хорошо и выложилось по полной [2], прислав в виде pull-request новые возможности, исправления, unit-тесты и переводы.
За всё это огромное спасибо! Особенно отметим: resurtm [3], DaSourcerer [4], cebe [5] и suralc [6].
Можно ознакомиться со списком изменений [7] и новыми возможностями [8]. Если планируете обновиться, внимательно читайте инструкции [9].
После релиза обнаружились некоторые неприятные ошибки [10]. Работаем.
Ну а теперь рассмотрим некоторые изменения.
CHtmlВ CHtml добавлены новые методы:
CHtml::dateField()CHtml::rangeField()CHtml::numberField()CHtml::emailField()CHtml::urlField()CHtml::activeDateField()CHtml::activeRangeField()CHtml::activeNumberField()CHtml::activeEmailField()CHtml::activeUrlField()Использовать так:
echo CHtml::activeNumberField($model, 'fieldName');
CFormatter::formatSize()Новый метод, позволяющий получить нормально читаемый размер из размера в байтах:
echo Yii::app()->format->formatSize(115969);
// покажет: 113.25 KB
Теперь можно вернуть integer из действия консольного приложения. Значение будет использовано как код возврата.
CJavaScript::encode() и js:Если вы использовали CJavaScript::encode() и при этом брали значение из формы или URL, ваше приложение, скорее всего уязвимо. Чтобы закрыть уязвимость, необходимо передать вторым параметром true:
CJavaScript::encode($userInput, true);
Параметр запретит использовать префикс js:. Если вам всё-таки необходимо передать выражение JavaScript обрамите его CJavaScriptExpression [12]:
CJavaScript::encode(new CJavaScriptExpression('alert("Yii!");'), true);
Второй параметр (safe) не влияет на поведение CJavaScriptExpression [13].
В дополнение к обычному кешированию страниц, в новой версии можно использовать CHttpCacheFilter [14]. Этот фильтр отсылает заголовки HTTP, которые дают клиенту понять, что содержимое страницы не менялось с последнего запроса. Серверу в этом случае нет необходимости повторно отсылать содержимое. Настраивается CHttpCacheFilter также, как и COutputCache:
public function filters()
{
return array(
array(
'CHttpCacheFilter + index',
'lastModified'=>Yii::app()->db->createCommand("SELECT MAX(`update_time`) FROM {{post}}")->queryScalar(),
),
);
}
Если вы не хотите использовать для валидации одно из правил когда активен определённый сценарий, то можете теперь указать параметр except, содержащий список сценариев. Синтаксис такой же, как и у on:
// строка имён через запятую (пробелы игнорируются)
array('username', 'required', 'except'=>'ignore, this, scenarios, at-all',)
Новая документация [17] задаёт рабочий процесс для перевода с использованием github. Инструменты позволяют получить все изменения, произведённые с последнего обновления перевода. Надеемся, что это поможет поддерживать переводы документации в актуальном состоянии.
Автор: SamDark
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/framework/12313
Ссылки в тексте:
[1] код Yii мигрировал на GitHub: http://www.yiiframework.com/news/53/yii-moved-to-github/
[2] выложилось по полной: https://github.com/yiisoft/yii/graphs/contributors
[3] resurtm: https://github.com/resurtm
[4] DaSourcerer: https://github.com/DaSourcerer
[5] cebe: https://github.com/cebe
[6] suralc: https://github.com/suralc
[7] списком изменений: http://www.yiiframework.com/files/CHANGELOG-1.1.11.txt
[8] новыми возможностями: http://www.yiiframework.com/doc/guide/changes
[9] инструкции: http://www.yiiframework.com/files/UPGRADE-1.1.11.txt
[10] некоторые неприятные ошибки: http://www.yiiframework.com/forum/index.php/topic/34113-yii-1111-known-issues/
[11] Подробнее в руководстве: http://www.yiiframework.com/doc/guide/1.1/en/topics.console#exit-codes
[12] CJavaScriptExpression: http://www.yiiframework.com/doc/api/1.1/JavaScriptExpression/
[13] CJavaScriptExpression: http://www.yiiframework.com/doc/api/1.1/CJavaScriptExpression/
[14] CHttpCacheFilter: http://www.yiiframework.com/doc/api/1.1/CHttpCacheFilter/
[15] Подробнее в руководстве: http://www.yiiframework.com/doc/guide/1.1/en/caching.page#http-caching
[16] Подробнее в руководстве: http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules
[17] Новая документация: https://github.com/yiisoft/yii/wiki/Documentation-translation-guidelines
Нажмите здесь для печати.