Задать вопрос
@ssrdop

Архитектура mvc + модули, как правильно поступить?

Есть приложение с архитектурой mvc + модули, которые можно вызывать в шаблонах и получать необходимый контент.
Возник следующий вопрос - например, на странице site.ru/news/its-first-news-url я хочу просмотреть новость целиком. Но прежде в контроллере я получаю информацию по этой новости, чтобы задать title, description, keywords и прочее. То есть уже обращаюсь к базе данных по этой новости. Далее, в шаблоне вывода новости я вызываю модуль "Новости" с параметром "url новости". Соответственно, модуль ищет в базе данных новость с url данной новости и возвращает html.
Вроде все хорошо, но для того чтобы показать новость, приходится 2 раза лезть в базу по одному и тому же, фактически запросу. Как от этого можно избавиться?
Как вариант, из контроллера передавать в шаблон, а в нем уже в модуль информацию по странице. Но тогда будет жесткая привязка модуля к контроллеру, что, на мой взгляд, не есть хорошо.
Как правильно здесь поступить? Если есть возможность - ссылки или описания ваших решений, спасибо!
  • Вопрос задан
  • 270 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    Архитектура и шаблоны проектирования
    4 месяца
    Далее
  • Учебный центр IBS
    DEV-001_C++ Шаблоны проектирования (GoF). Редакция для C++
    1 неделя
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 2
@AnneSmith
самая ленивая
да, старинный такой подход
нынче все пакуют в json и потом на клиенте показывают, что нужно в конкретный момент, особенно в свете мобильного тырнета
Ответ написан
Комментировать
Basim108
@Basim108
Full stack .Net программист, архитектор.
Да, согласен с предыдущим ответом. В таком случаи лучше сделать более умным клиента и регулировать переход на страницу новости через browser history API или router фреймворк, который используете на клиенте.
т.е. эмитируете переход на новую страницу (и в адресной строке поменялось и в истории браузера добавилась запись) но на самом деле обращения к серверу второй раз не было.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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