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

21 Авг 2019 в 07:06
178 +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 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир