0

Я понимаю, что такое MVC и CMS. Я понимаю шаблон MVC и то, как CMS должна работать. Но у меня проблемы с тематикой и шаблоном.MVC для CMS? Как насчет тем?

Пример:

Когда CMS установлен на Серуэр Я хочу изменить свою домашнюю страницу. Я хочу отобразить некоторые дополнительные данные. Я меняю шаблон домашней страницы и добавляю вызов функции для извлечения данных из БД. Мои новые данные будут отображаться на моей домашней странице. :)

Но когда я это делаю, я нарушил шаблон MVC, потому что в этой ситуации View решит, какие данные следует читать из БД для отображения на моей домашней странице.

Итак ... это MVC для CMS? Или, может быть, не должно быть четкого шаблона MVC для работы с такими ситуациями? Может быть, я должен забыть о моделях? Я запутываю ...

PS Wordpress он не построен на шаблоне MVC, я думаю?

+0

Шаблоны не всегда должны быть чистыми. Например, в ASP.NET MVC существуют известные примеси, связанные с субконтроллерами и помощником RenderAction. Делайте то, что работает. В частности, сделайте то, что лучше всего подходит для вашего конкретного приложения. –

+0

Я думаю об использовании RenderAction для подобных ситуаций. Благодарю. – dariol

ответ

0

Дизайн шаблонов, таких как MVC, предназначен для разделения кода дисплея на бизнес-логику и т. Д. Это упрощает замену любой части, не затрагивая ни одну из других частей (например, изменять шаблоны, не беспокоясь о случайно меняя любую бизнес-логику).

Вы чувствуете, что функция, которую вы добавляете, - это простая логика вида? Лучше всего включить функцию в Helper и получить вспомогательный вызов для данных через Model. Затем, на ваш взгляд, просто позвоните Помощнику.

В псевдокоде:

Helper

function get_whatever_data() { 
    // get the actual data from the model 
    return SomeModel.get_the_data_thats_needed_here() 
} 

Посмотреть

<div id="some-id"> 
    <? print get_whatever_data() ?> 
</div> 
Смежные вопросы