Что в моем случае V и C (MVC)? Знаю, многим вопросы про MVC уже давно надоели. Информации действительно много, но так у меня мозг устроен, что понимаю я эту информацию только на практике.
Пишу сайт на MVC, модель - понятно, доступ к бд, бизнес-логика
контроллер - соединяет M и V
V - отображение
Разумеется, я не хочу, чтобы у меня для каждой страницы был отдельный V_page_name.php, поэтому решил написать подобие шаблонизатора и использовать файлы .tpl (кстати, очень нравится система шаблонов у DLE - DataLifeEngine).
Правильно ли я понимаю, что .tpl файлы будут отображением, сам шаблонизатор - отдельным от MVC классом, а контроллер будет получать данные из модели, преобразовывать в нужный формат и загонять в переменные шаблона? Если есть пример, буду благодарен.

21 Авг 2019 в 07:06
194 +1
0
Ответы
1

Да, вы правильно понимаете структуру MVC. В вашем случае, .tpl файлы будут отображением, шаблонизатор будет отдельным классом, а контроллер будет обрабатывать данные из модели и передавать их в шаблон для отображения.

Примерно возможная структура кода:

Модель (Model) - отвечает за работу с данными. Например, класс, который работает с базой данных и возвращает данные:class Model {
public function getData() {
// запрос к базе данных или другая логика получения данных
return $data;
}
}Контроллер (Controller) - получает данные из модели, обрабатывает их и передает в шаблон:class Controller {
public function action() {
$model = new Model();
$data = $model->getData();
// Тут может быть дополнительная логика обработки данных
$view = new View();
$view->render('template.tpl', $data);
}
}Отображение (View) - отображает данные в шаблоне:class View {
public function render($template, $data) {
// Чтение шаблона
$content = file_get_contents($template);
// Вставка данных в шаблон
foreach ($data as $key => $value) {
$content = str_replace('{{' . $key . '}}', $value, $content);
}
echo $content;
}
}

В данном примере, контроллер создает экземпляр модели, получает данные, обрабатывает их (если необходимо) и передает в отображение. Отображение вставляет данные в шаблон и выводит на экран.

Таким образом, вы можете использовать файлы .tpl для отображения, отделить шаблонизацию от другой логики и правильно разделить задачи между моделью, контроллером и отображением в вашем MVC приложении.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир