Статьи

Разделение разметки с помощью шаблона IT

Одна из самых сложных вещей, с которыми я сталкивался при разработке PHP, — это эффективное отделение презентации от логики программы. Во многих проектах я чувствовал, что отлично справляюсь, пока мне не пришлось вносить изменения в разметку и преодолевать множество препятствий, чтобы это произошло. В моих недавних проектах я начал использовать расширение HTML Template IT в PEAR, и это значительно упростило задачу.

Расширение HTML Template IT предоставляет надежную систему шаблонов, которая позволяет полностью разделить код и представление. Вместо того, чтобы размещать разметку в ваших файлах PHP, разметка содержится в отдельных файлах шаблонов. В разметке этих шаблонов есть переменные, которые могут быть заменены динамическими данными при разборе шаблона.

Легко определить заменяющие переменные, а файл прост для редактирования редактором. Пока ссылки есть, они будут заменены при разборе шаблона. Основная цель здесь — предоставить метод для изменения разметки HTML, не затрагивая функциональность сайта.

Ниже приведен пример базового шаблона:

<!-- BEGIN Article -->
<div>
	<h2>{ArticleTitle}</h2>
	<small>{ArticleAuthor}</small>
	<p>{ArticleBody}</p>
</div>
<!-- END Article -->

Итак, теперь, когда у вас есть файл шаблона, вам нужно использовать расширение IT-шаблона для его анализа. Если у вас есть собственный сервер, вам придется установить его с помощью PEAR. Если вы находитесь в размещенной системе, вероятно, это и другие распространенные расширения PEAR уже установлены.

После установки расширение становится простым в использовании. Процесс состоит из 3 шагов: загрузите шаблон, установите переменные замены и проанализируйте шаблон. Вот пример того, как разобрать шаблон из примера выше:

 
<?php
	require_once "HTML/Template/IT.php"; //Require the extension
	//Instantiate a template object and set the template directory
	$tpl = new HTML_Template_IT("templates");
	//Load the template file
	//the boolean values tell the parser to remove empty or unknown items
	$tpl->loadTemplateFile("article.tpl", true, true);
	//Provide data for the replacement variables
	$tpl->setVariable("ArticleTitle",$title);
	$tpl->setVariable("ArticleAuthor",$author);
	$tpl->setVariable("ArticleBody",$body);
	//Parse template and print
	$tpl->show();
?>

Приведенный выше пример очень прост, но система шаблонов обеспечивает большую гибкость, позволяющую делать больше. Использование HTML-кода с комментариями BEGIN и END в шаблоне позволяет определять несколько блоков в одном файле. Вы можете даже иметь вложенные шаблоны. Например, если ваш шаблон содержит список выбора, вы можете сделать блоки шаблона параметров вложенными в шаблон. Этот блок опций может быть проанализирован столько раз, сколько необходимо, тогда содержащий блок может быть проанализирован. Это оставляет вам заполненную страницу и позволяет отдельным частям повторяться столько раз, сколько необходимо.

Существует также другая опция для разбора шаблона. В дополнение к методу show, есть также метод get, который возвращает проанализированный шаблон в строку, а не печатает его. Вы можете легко использовать это, чтобы вставить один шаблон в переменную замены другого шаблона. Это позволяет вам использовать один шаблон для навигации, верхних и нижних колонтитулов и вставлять в него анализируемый шаблон как контент. Затем дизайнеры могут вносить глобальные изменения в основной файл шаблона, не влияя на содержимое отдельной страницы.

Есть несколько других систем шаблонов, доступных для PHP как через PEAR, так и из других источников. Шаблон IT — одна из самых простых систем, в которую легко попасть, но она не обеспечивает такой функциональности, как некоторые другие системы. Если вам нравится идея шаблонов, но вам нужно еще несколько вариантов, посмотрите Smarty или Flexy. Независимо от того, являетесь ли вы разработчиком, работающим с дизайнерами или сами делаете все это, использование шаблонов значительно облегчит обслуживание вашего кода.