Движок открывает xml структуру например
<page TITLE="Главная"> <nodes> Menu </nodes> <html see="site"> <content> {menu} Это содержание <menu lay="menu"> <list fnc="Menu"/> </menu> </content> </html> </page>
Чтобы было понятнее объясню о составлении структуры страницы.
xml имеет формат: <перефикс атрибут="значение атрибута">содержание</перефикс> или без содержания <перефикс атрибут="значение атрибута"/>
перефикс - это метка данных в шаблоне куда нужно вставить содержание
атрибут - строго определен, если нужен шаблон меню ставим атрибут lay="menu"
Итак. Движок берёт <nodes> и загружает нужные классы, у нас указан узел(класс) Menu. Затем берёт основной шаблон для html see="site" то есть файл site.html. В этом шаблоне должна быть метка [content]. Затем смотрит дочерние данные. В content у нас есть метка для меню и какое-то содержание. Идём дальше, видим перефикс для меню загружаем шаблон меню lay="menu" в этот шаблон нужно вставить список который нам даст функция узла fnc="Menu".
основной шаблон {метка} - в реальном шаблоне такая [метка], тут поменял так как вставляется это ***91;content***93;
<!doctype html> <html> <head> <title>{TITLE}</title> <link type=text/css rel=stylesheet href=site/main.css> <!-- script --> </head> <body> {content} </body> </html>
шаблон меню
<menu class={class}> {list} </menu>
Плюсы минусы подходов генерации страницы.
Структуирование - мой подход с парсингом xml
Нативный шаблон(MVC) - вставка в шаблоне php
Шаблонизация(метками) - php ищет метки в тексте и обрабатывает и заменяет
В [] буду ставить свою оценку по 5 бальной шкале.
Принцип разделения данных и шаблона?
Структуирование - [5] принцип работает
Нативный шаблон(MVC) - [3] в шаблонах не обойтись без вставок данных php
Шаблонизация(метками) - [4] я никогда не пользовался шаблонизаторами так как привыкать ещё и к его командам надо, делал свои простые шаблонизаторы с самыми нужными командами
Удобство в создании новых страниц?
Структуирование - [5] для меня это наилучшее решение, надо знать только принцип создания структуры - это просто
Нативный шаблон(MVC) - [3] надо знать html и php, поставил 3 так как обычные люди не хотят изучать html и php
Шаблонизация(метками) - [2] надо знать html и команды шаблонизатора, также не совсем удобно
Скорость генерации страницы?
Структуирование - [4] думаю немного медленнее чем MVC
Нативный шаблон(MVC) - [5] быстрая скорость
Шаблонизация(метками) - [1] медленная скорость
Подведём итоги:
Структуирование - оценка 5+5+4=14
Нативный шаблон(MVC) - оценка 3+3+5=11
Шаблонизация(метками) - оценка 4+2+1=7
Структуирование по-моему наилучший подход.