MVC: куда включают логику формирования заголовков?

Заголовок сайта хранится в глобальных настройках, настройки каждого модуля (раздел статей, загрузок) скорее всего также будут в отдельных файлах. Вопрос - где именно мне формировать заголовок? Например, главная страница модуля имеет название вида "Название сайта / Название модуля" - кто будет брать эти переменные и склеивать их в таком виде - контроллер, модель или вью? Или например страница добавления материала тоже будет иметь своё название - где его хранить - в настройках (тогда какой класс должен его читать оттуда?) ? Или прописывать прямо в методе view? Или в методе showAddPage контроллера?
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
Audiophile
@Audiophile Автор вопроса
Сделал так:
Контроллер модуля подгружает настройки модуля в специальный синглтон Configurator (там же хранятся и глобальные настройки), затем при необходимости объекты настроек используют любые классы - так View подгружает себе настройки в конструкторе, а затем в каждом методе, отвечающем за конкретную страницу, формирует заголовок (который потом отображается в подгружаемом шаблоне).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
eucalipt
@eucalipt
Самоделкин.
Вы сами ответили на свой вопрос: куда включать логику формирования заголовков?

Суть MVC - отделение логики от представления. А контроллер служит лишь тоннелем передачи информации между ними. Модель - это и есть логика. Поэтому храните в модели.

P.S. Лично я для себя ее вообще именую LVC - Logics, Controllers, Views (просто потому что так соображается быстрее). И вообще, поскольку проект такой, что суть контроллера всегда одна и та же - подставить данные в шаблон (данные получаю в логике), то и контроллер использую один на все модели и представления.
Ответ написан
@SergeyZelensky-Rostov
Верно, заголовки можно хранить в базе, и даже нужно) а с базой у нас модель общается.
в базовом классе модели можно написать метод назовем его к примеру GetPageTitle(); и когда у нас тянется модель, заголовок тоже будет выводиться
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
если у вас этот кусок кода будет использоваться только во вьюхе то его можно там и оставить, так как правильно это логика связана с выводом. Если часть кода будет использоваться не только здесь то имеет смысл вынести куда нибудь, это может быть хелпер с набором простых функций или статический класс, это может быть фабрика для генерации UI элементов, но кидать в модель не очень правильно так как это не относится к модели а относится к интерфейсу приложения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы