Хелперы в Yii. Для чего и как использовать.
Иногда удобно какую-то свою функцию (или несколько собственных функций) использовать по всему приложению, тогда мы помещаем их в хелпер. Хелпер в Yii используется для ваших собственных функций (специальных пользовательских функций). Эти функции вы сможете использовать из любого места приложения. Из названия следует, что эти функции-помощники играют вспомогательную роль (что-то считают, обрабатывают, преобразовывают).
1) Создаём папку helpers в директории protected, в которую помещаем свои хелперы. Например мы взяли за основу хелпер из приложения Yii catalog (спасибо автору за хороший пример!), назвали его CLocoHelper.php, вот функция, меняющая окончание слова 'оценка' в зависимости от количества оценок к конкретной статье:
<?php
class CLocoHelper
{
...
public static function GetFormatWord($word, $number)
{
$num = $number % 10;
if ($word == 'оценка') {
if ($num == 1)
return 'оценка';
elseif ($num > 1 && $num < 5)
return 'оценки';
else
return 'оценок';
}
} ...2) В config/main.php добавим строку, чтобы функции из этого хелпера подгружались, когда мы к ним обращаемся:
// autoloading model and component classes 'import'=>array( 'application.models.*', 'application.components.*', ... 'application.helpers.*', ),
Немного съедается скорость загрузки приложения, когда import содержит много всего, но у нас пока не много всего.
3) Теперь в виде мы используем функцию из хелпера:
<?php $data->ShowRating(); echo '<span> '.$data->marksCount.' ' .CLocoHelper::GetFormatWord('оценка', $data->marksCount).'</span>' ?>
Leave a Comment