Функции

Здравствуйте, Я новичек в Yii, но очень нужна Ваша помощь. В своем проекте я хочу ввести облегчающие функции.

Простой например для вывода заголовка,

вместо


<title><?php echo CHtml::encode($this->pageTitle); ?>

вызывать


<title><?php pageTitle(); ?>

Подскажите куда стоит писать код такой функции? Как из этой функции увидеть переменную $this->pageTitle ?

Я тоже новичек, но мне кажется что ты должен оставить такой тип мышления. Просто функция, определить ты её конечно можешь где-то и includ’ить в index.php к примеру, но у неё и имя неудачное, и титул страницы из функции не получишь. В общем ты стремишься сделать код более нечитабельным даже не ради его скорости исполнения, а ради его компактности, а это очень плохо.

Надо использовать ООП. Внутри представления $this - это контроллер, значит внутри своего SiteController.php надо определить функцию




public function printPageTitle(){

   echo CHtml::encode($this->pageTitle);

}

и вызывать как


<title><?php $this->printPageTitle(); ?></title>

но что бы это работало для всех твоих контроллеров, надо либо во всех определить такую функцию, либо определить её в их предке, а предок у них: protected/components/Controller.php вот в нем на самом деле нужно определить эту функцию, тип вызова при этом не меняется.

Если тебе имя функции кажется излишне длинным, можешь и сократить, но это снижает читаемость кода. А как правило читаемость и гибкость кода важнее его скорости работы или скорости разработки.

IMHO у тебя не говорящее имя темы, хуже может быть только “Помогите!!!” :)

Облегчающие функции это "хелперы" поэтому тема могла бы быть "Где можно определять хелперы/облегчающий функции?"

Человек же написал, что новичек… Не догадываетесь, что он может и не знать про существование хелперов и прочего…

Для начала могу посоветовать установить пример блога на Yii и изучить как он построен. Еще очень интересна тема туторов в документации… Считайте их отдельными уроками…

Посмотрите как сделано в

http://www.yiiframework.ru/forum/viewtopic.php?f=9&t=1648


function pageTitle()

{

    echo Yii::app()->controller->pageTitle;

}

Вот статья по теме: http://www.yiiframework.com/wiki/31/use-shortcut-functions-to-reduce-typing

P.S. Правильно писать новичок :)