Архитектура mvc + модули, как правильно поступить?
Есть приложение с архитектурой mvc + модули, которые можно вызывать в шаблонах и получать необходимый контент.
Возник следующий вопрос - например, на странице site.ru/news/its-first-news-url я хочу просмотреть новость целиком. Но прежде в контроллере я получаю информацию по этой новости, чтобы задать title, description, keywords и прочее. То есть уже обращаюсь к базе данных по этой новости. Далее, в шаблоне вывода новости я вызываю модуль "Новости" с параметром "url новости". Соответственно, модуль ищет в базе данных новость с url данной новости и возвращает html.
Вроде все хорошо, но для того чтобы показать новость, приходится 2 раза лезть в базу по одному и тому же, фактически запросу. Как от этого можно избавиться?
Как вариант, из контроллера передавать в шаблон, а в нем уже в модуль информацию по странице. Но тогда будет жесткая привязка модуля к контроллеру, что, на мой взгляд, не есть хорошо.
Как правильно здесь поступить? Если есть возможность - ссылки или описания ваших решений, спасибо!
Да, согласен с предыдущим ответом. В таком случаи лучше сделать более умным клиента и регулировать переход на страницу новости через browser history API или router фреймворк, который используете на клиенте.
т.е. эмитируете переход на новую страницу (и в адресной строке поменялось и в истории браузера добавилась запись) но на самом деле обращения к серверу второй раз не было.