MVC: как правильно представить шаблон(view)?

167
01 апреля 2019, 13:40

После того как модели сформировали нужные массивы данных, контроллер должен выбрать нужный шаблон с html - кодом, в который будут подставляться данные. Предположим, что шаблон подключается так:

<?php 
    require_once('./teamplates/main.php'); 
?>

Так как во многих шаблонах повторяются header и footer, логично вынести их в отдельные файлы и подключать в каждых шаблонах отдельно, тогда шаблон main.php будет содержать в себе такие подключения:

<?php  
    require_once(./blocks/header.php);
    require_once(./blocks/content-main.php);
    require_once(./blocks/footer.php); 
?>

Шаблон статьи может быть таким:

<?php  
    require_once(./blocks/header.php);
    require_once(./blocks/content-art.php);
    require_once(./blocks/footer.php); 
?>

content-main.php и content-art.php имеют разную структуру, однако в них может повторяться определенный элемент, который логично вынести в отдельный файл "users-table.php". Выходит что в фалах "content-art.php" и "content-main.php" в перемешку с html - кодом будет подключение файла "users-table.php".

1) Правильным ли является такой подход разбития блоков(компонентов)? Ведь в конечном итоге, в больших проектах может появиться большая вложенность.

2) Современные js - фреймворки используют для представления(view) данных на клиентской стороне, вместо формирования страницы на сервере? То-есть, вместо готовой страницы пользователю отправляется шаблон, который фреймворк рендерит в страницу уже у пользователя?

READ ALSO
Создание изображения круга с буквой в центре

Создание изображения круга с буквой в центре

Нужно создать изображение круга с зеленым фоном и размером 50х50 пикселейВ центре символ I белым цветом

152
Категория товара Woocommerce

Категория товара Woocommerce

В woocommerce реализована древовидная структура категорий товаровЯ получаю id всех категорий, к которым принадлежит товар, начиная с самой верхней

147
Проблемы с путями при вызове теста. Laravel

Проблемы с путями при вызове теста. Laravel

Получаю ошибку следующего содержания: Failed asserting that 500 matches expected 200

127
Как ввести enter для завершения программы? [закрыт]

Как ввести enter для завершения программы? [закрыт]

Скопировал пример, но он не работает, хотя долженЧто не так? В учебнике пример работает, но у меня программа не выводит ничего

155