Доброе утро.
Есть система на Yii. Для верстки шаблонизаторы не используются. Делаю стандартным Yii-шным способом: через
\CController::render()
подключается файл с html разметкой, в которую вставляются данные чрез
<?php echo ''; ?>
В представление передается модель AR, чьи свойства и подставляются. Удобнее, чем в контроллере формировать массив параметров и передавать его. Модели построены так, что в представлении не вызывается ни один ее метод, кроме гетеров.
Система использует ЧПУ. Поэтому адреса ссылок вписываются не напрямую, а вормируются через
\Yii::app()->createUrl();
. Но в таком случае при смене адреса старницы, надо искать во всех представлениях эту ссылку и менять ее.
Я вот думаю сделать в модели методы, которые будут возвращать соответствующие ссылки. И тогда вместо такого кода в представлении:
<a href="<?php echo \Yii::app()->createUrl('users/Settings',['userId'=>$user->id]); ?>">settings</a>
я в модели описываю метод:
public funtion getSettingsLink()
{
return \Yii::app()->createUrl('users/settings',['userId'=>$this->id]);
}
а в представлении:
<a href=<?php echo $user->settingsLink; ?>">settings</a>
Такой вариант мне видится логичным т.к. формирование ссылок инкапсулируется внутри объекта. Но смущает тот факт, что модель содержи методы зависящие от url (грубо говоря работает с представлением).
Подскажите, стоит ли использовать данных подход. Или есть другие пути решения этой задачи?