Лисю
Guest
Про модели шаблонизации (by Котеров)
Сразу оговорюсь – прошу не предлагать использовать шаблонизаторы! Не люблю и не хочу…
Читаю Котерова PHP5, там он описывает модели шаблонизации.
Встраивание кода в html и наоборот он по понятным причинам отвергает.
Третий подход Model-View-Controller он рассматривает, но оптимальным в теории считает компонентный подход.
Model-View-Controller (вкратце):
Script.php
// Этот php-скрипт генерирует данные, и после создания и заполнения переменных шаблона ($array в нашем случае) тупо инклюдит дизайн типа:
и всё.
Компонентный подход - это разбитие функциональности на отдельные модули, и инклуд модулей в дизайн:
Вот значит... Показался последний подход мне чертовски правильным и удобным (в одну страницу можно вставлять какие-угодно реализованные тобой модули-компоненты) да вот только уж очень он не практичен - дело в том, что при таком подходе невозможно использовать единый шаблон для всего сайта, тот самый каркас, верстку. Его просто невозможно никоим образом вставить в эту страницу.
Т.е. получается два варианта – либо в каждую страницу дизайна тупо копировать один и тот же шаблон (что будет с одной стороны очень гибко, а с другой, в случае глобального изменения верстки – пипец как много нудной работы), либо вообще отказаться от компонентного подхода. Что скажите?
Сразу оговорюсь – прошу не предлагать использовать шаблонизаторы! Не люблю и не хочу…
Читаю Котерова 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; ?>
Т.е. получается два варианта – либо в каждую страницу дизайна тупо копировать один и тот же шаблон (что будет с одной стороны очень гибко, а с другой, в случае глобального изменения верстки – пипец как много нудной работы), либо вообще отказаться от компонентного подхода. Что скажите?