- 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
Нажмите здесь для печати.