Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #58, ОКТЯБРЬ 2003 г.

PHP: Бей шаблоном!

Никита "red_way" Кислицин

Xakep, номер #058, стр. 058-094-2


Но вернемся к шаблонам. Как же по заданной болванке сгенерировать обычную html-страницу и вывести ее браузеру? В большинстве систем для этого используется объектный подход: порождается новый экземпляр класса, который имеет несколько свойств (путь, по которому хранятся шаблоны, имя верхнего шаблона и значения переменных) и методов (заполнить какую-то переменную, обработать шаблон, вывести сгенерированную страницу пользователю и т.д.).

В блоке с кодом приведен примерный сценарий, формирующий и выводящий HTML-страницу пользователю. А сейчас я просто прокомментирую основные шаги обработки шаблонов при помощи рассматриваемого пакета. Прежде всего необходимо подключить ядро системы - файл class.FastTemplate.php. Именно там описаны все функции по обработке шаблонов. После этого создается новый экземпляр класса и меняются некоторые его свойства. В частности, необходимо при помощи метода define сопоставить имя каждого используемого шаблона с именем конкретного файла. Затем при помощи метода assign заполняются переменные шаблона; если же ты хочешь поместить туда вывод другого шаблона, его следует сперва обработать при помощи метода parse. В результате получаем переменную, содержащую вывод обработанного шаблона, и можем ее запросто подставить как параметр к методу Assign, заполняющему переменную в шаблоне более высокого уровня. Так снизу вверх и формируется страница. Для ее вывода пользователю используется метод FastPrint(VAR_NAME), в качестве параметра которого указывается имя переменной с выводом шаблона; если этот параметр опустить, по дефолту подставляется вывод последней болванки, обработанной методом parse.

Вот такой удобный инструмент. Теперь можно без проблем создать сложную систему, которую даже по прошествии некоторого времени будет удобно модифицировать - код полностью отделен от дизайна, что, опять же, предоставляет некоторую свободу и программисту, и дизигнеру, и верстальщику - все занимаются только своим делом. Красота? А то! :)

Но рассказ не будет полным, если я не затрону вопрос о том, как подобные шаблонные системы устроены внутри - это же очень интересно! Смотри: фактически, программисты создали свой собственный язык на основе уже существующего высокоуровнего, да к тому же и интерпретируемого! Поэтому читай врезки. Они твое счастье :).

Как работают такие системы?

Назад на стр. 058-094-1  Содержание  Вперед на стр. 058-094-3