Про модели шаблонизации (by Котеров)

Статус
В этой теме нельзя размещать новые ответы.

Лисю

Guest
Про модели шаблонизации (by Котеров)

Сразу оговорюсь – прошу не предлагать использовать шаблонизаторы! Не люблю и не хочу…

Читаю Котерова PHP5, там он описывает модели шаблонизации.
Встраивание кода в html и наоборот он по понятным причинам отвергает.

Третий подход Model-View-Controller он рассматривает, но оптимальным в теории считает компонентный подход.

Model-View-Controller (вкратце):

Script.php
// Этот php-скрипт генерирует данные, и после создания и заполнения переменных шаблона ($array в нашем случае) тупо инклюдит дизайн типа:
PHP:
<i>это дизайн нашей гостевой</i>:<hr>
<? foreach($array as $k): ?>
    Имя человека: <b><?=$k['name']?></b><br>
    Его сообщение: <b><?=$k['message']?></b>
<? endforeach; ?>
и всё.

Компонентный подход - это разбитие функциональности на отдельные модули, и инклуд модулей в дизайн:

PHP:
<!-- вывод записей из ГБ -->
<!-- component_gbook_show.php – генерирует данные из гостевой книги -->
<? include("component_gbook_show.php") ?>
<!-- тут мы их сразу выводим -->
<? foreach($array as $k): ?>
    Имя человека: <b><?=$k['name']?></b><br>
    Его сообщение: <b><?=$k['message']?></b>
<? endforeach; ?>

<!-- вывод новостей -->
<!-- component_news_show.php – генерирует данные из ленты новостей  -->
<? include("component_news_show.php") ?>
<!-- тут мы их сразу выводим -->
<? foreach($array as $k): ?>
    Заголовок: <b><?=$k['name']?></b><br>
    Новость: <b><?=$k['news']?></b>
<? endforeach; ?>
Вот значит... Показался последний подход мне чертовски правильным и удобным (в одну страницу можно вставлять какие-угодно реализованные тобой модули-компоненты) да вот только уж очень он не практичен - дело в том, что при таком подходе невозможно использовать единый шаблон для всего сайта, тот самый каркас, верстку. Его просто невозможно никоим образом вставить в эту страницу.

Т.е. получается два варианта – либо в каждую страницу дизайна тупо копировать один и тот же шаблон (что будет с одной стороны очень гибко, а с другой, в случае глобального изменения верстки – пипец как много нудной работы), либо вообще отказаться от компонентного подхода. Что скажите?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху