int
Освоившийся
Дата регистрации:
26.10.2011 05:32:04
Сообщений: 32
немного покумекал о целесообразности выбора между двумя самыми популярными подходами при проектировании шаблонизатора и решил поделиться своими выводами.
Есть два варианта шаблонизатора, которые отличаются от всех остальных удобством и ясностью.
Первый вариант- это парсинг tpl файла с подменой определенных заданных для шаблона строк на их определенные значения с бд. В этом случае нам нужно подключить файл- шаблонизатор который считывал бы файл-html скилета, делал запрос в бд определяя заданные строки их значениями.
Можно конечно сделать сам шаблонизатор на index странице, но все же, я считаю что лучше будет вынести его в отдельный модуль. Как пример :
На index странице
include("tpls.php"
;
clTPL::in();
Сам файл tpls с классом парсинга Файла tpl и методами его вывода.
tpl:
<head>
<title>{tit_tpl}</title>
</head>
<body>
{content_tpl}
</body>
Это, к стати, принцип движка joomla.
Наверно кто-то возразит и скажет зачем инклюдить эти классы если можно сразу же сделать сценарием сам обработчик шаблона и сделать его индекс.страницей?
Т.е в одной папке tpl файл, в другой скрипт который будет парсить и который будет основной страницей.
Вроде все достаточно просто, но, спрашивается, как же тогда модульность?
Если у Вас главная страница сама служит обработчиком, то как же тогда Вы реализуете пользовательские стили на сайте?? Это большой просчет.
Совсем другое дело когда есть главная страница и куча подлюченных обработчиков которые отвечают сами за себя и которые можно как подключить, так и отключить в любое время.
Важно соблюдать модульность. Важно понять значение и важность модульности.
Ну и вообще замечательно если класс шаблонизатора будет входить в общую "библиотеку" классов. Т.е в файл, который будет вызывать все модули и из которого мы сможем выборочно выводить информацию на index страницу. К стати так проще будет организовать админ панель сайта.
index ---> config.php
<--- \---->класс регистрации
---->класс шаблонизатора
--->класс чата
Второй вариант похож на первый, с той лишь разницой, что не происходит парсинга как такового и за место шаблонных слов мы сразу подставляем методы классов и их переменные. Которые подключаем через файл-конфигуратор и которые представляют сражу же выведенные с бд данные. В этом случае мы сразу грузим "скилет html" подобный
include("config.php"
;
<head>
<title>tpl->title();</title>
</head>
<body>
tpl->content();
</body>
и т.п