Реализация шаблонов на PHP.

Вступление..
Добрый день уважаемые господа! В данной статье я хотел бы затронуть очень важную тему, а именно шаблоны в PHP. В этой статье я приведу простой, но работающий пример “шаблонов”, также мы рассмотрим все за и против использования шаблонов.

Использование шаблонов.

Прежде чем использовать шаблоны, подумайте, действительно ли они вам так нужны? В данный момент существует огромное количество коммерческих вариантов шаблонов. Все они работают по одному принципу (значение, замена), но имеют огромное количество наворотов, таких как автоматическое изменения регистра переменных, поиск по регулярным выражениям и т.д., все это конечно хорошо и легко реализуемо. Когда я решил посмотреть “коммерческий” шаблон, я ужаснулся, один его класс весил 398 КБ. Это нормально? Также в сети можно найти множество бесплатных вариантов шаблонов (классы шаблонов в PHPBB, IPB…), но все они много весят и работают не слишком быстро. Я предлагаю вам простой каркас “шаблонов” на PHP, с его помощью можно сделать свой классный шаблонизатор, со всеми необходимыми вам функциями.

За и против.

Приведу вам жизненный пример, не так давно я занимался разработкой программы для одного человека, заранее было обговорено, что я пишу программу, а дизайн это его дело. Через некоторое время, мой заказчик пишет мне, что дизайн для моей программы сделать невозможно. Конечно, человек ничего не знающий в web-программировании будет испытывать огромные затруднения, при построении дизайна в PHP-программе. Главная задача ‘шаблонов’ – это облегчить жизнь дизайнеру. Безусловно, главным плюсом использования шаблонов можно считать то, что дизайнер без помощи программиста сможет изменять свой web-проект. Также мне нравится само разделение – программа и дизайн.

Я не использую шаблоны в своих личных проектах, т.к. они дают дополнительную “нагрузку”. Шаблоны это хорошо, но использовать их надо только если пишешь какой, то публичный проект или выполняешь работу на заказ.

Реализация шаблонов на PHP.

И так приступим. Всего у нас будет 2 ключевых файла.

1) file2compile.tpl – файл который мы будем парсить
2) template.php – главный файл содержащий класс шаблонов

Листинг файла file2compile.tpl:

<html>
<head>{TITLE}</head>
<body bgcolor={BGCOLOR}>

{SOMETPLTAGS}

</body>
</html>

Листинг файла template.php:

<?php
class parse_class
{
var $vars = array();
var $template;

function get_tpl($tpl_name)
{
if(empty($tpl_name) || !file_exists($tpl_name))
{
return false;
}
else
{
$this->template = file_get_contents($tpl_name);
}
}
function set_tpl($key,$var)
{
$this->vars[$key] = $var;
}
function tpl_parse()
{
foreach($this->vars as $find => $replace)
{
$this->template = str_replace($find, $replace, $this->template);
}
}
}
$parse = new parse_class;
?>

Теперь я подробно опишу содержание этих двух файлов.

Файл: file2compile.tpl

Тут приведен обычный HTML код. В данном файле можно найти переменные вида {TITLE}. Это как раз именно те переменные которые мы будем заменять на нужное нам значение.

Файл: template.php

Мы имеем PHP класс, разделенный на 3 функции. В самом начале файла мы объявляем классовые переменные.

$vars – массив со значениями (переменная, замена).
$template – файл который мы будем парсить.

Теперь перейдем к описанию функций.

Функция: get_tpl

В качестве аргумента функция принимает имя файла. В теле функции мы проверяем задан ли аргумент и существует ли файл. Если аргумент не задан и файл не существует мы возвращаем значение FALSE. В противном случае мы заполняем классовую переменную(template) содержанием файла.

Функция set_tpl

Функция принимает 2 значения, это переменная (напр. {TITLE)} и значение на которое мы будем ее заменять.

Функция tpl_parse

Функция не принимает никаких значений. В теле функции мы считывает массив $vars и производим замену установленных переменных на заданные значения.

Использование класса.

Для вывода на экран используйте следующие команды:

<?php
require(‘template.php’); // Подключаем файл с классом
$parse->get_tpl(‘template.tpl’); //Файл который мы будем парсить
$parse->set_tpl(‘{TITLE}’,'Супер сайт’); //Установка переменной {TITLE}
$parse->set_tpl(‘{BGCOLOR}’,'#F2F2F2′); //Установка переменной { BGCOLOR }
$parse->set_tpl(‘{SOMETPLTAGS}’,'<font color=red>Это текст обрамленый красным цветом</font>’); //Установка переменной {SOMETPLTAGS}
$parse->tpl_parse(); //Парсим
print $parse->template; //Выводим нашу страничку
?>

Заключение.
Надеюсь, моя статья поможет вам лучше понять, что такое шаблоны.

Автор: Овчинников Сергей
Сайт автора: http://www.web-faq.ru
Скачать статью: ссылка

Поделиться в соц. сетях

mailru Реализация шаблонов на PHP.
facebook Реализация шаблонов на PHP.
odnoklassniki Реализация шаблонов на PHP.
livejournal Реализация шаблонов на PHP.
googlebuzz Реализация шаблонов на PHP.

Также рекомендуем:

  1. tmp профессиональный дизайн; регистрация домена .RU на 1 год; наполнение до 10 страниц сайта; блок новостей; прайс-лист; форма заказа с сайта; регистрация в поисковых системах; счетчик посещений; срок изготовления 3-5 дней. акция 3990=...
  2. Использование шаблонов при программировании WEB-приложений ЗАЧЕМ ВООБЩЕ ИСПОЛЬЗОВАТЬ ШАБЛОНЫ? Может, кто-то скажет, а зачем выносить HTML код в отдельный файл если его можно спокойно писать в скрипте? Да конечно в скрипте можно писать HTML код, но просмотреть полностью «собранную», или частично «собранную» страницу которую выводит скрипт, возможно только при его нормальной работе, а во время отладки скрипта, как правило, возникают [...]...
  3. Построение дерева иерархии с помощью PHP / MySQL Рассмотрим пример построения дерева иерархии (в развернутом виде) на основе информации из базы данных с помощью PHP и MySQL. Ключ к решению данной задачи – использование рекурсивной функции. Иерархия разделов будет храниться в таблице базы данных MySQL. . Ниже на скриншоте показана данная таблица (catalogue): id – первичный ключ таблицы pid – id родительского раздела [...]...
  4. Работа с шаблонами. Разработка собственных и использование существующих решений. В этом выпуске мы поговорим о такой вещи как темплейты (templates) – что это такое, зачем это нужно и почему почти все это используют. Но сначала, как обычно, немного новостей.. Новости А новости таковы, что версия PHP 4.1.0, о создании которой я говорил в предыдущем выпуске вышла! Правда пока что она доступна лишь в виде [...]...
  5. Преимущества локальной оптимизации Займитесь локальной оптимизацией. Зачастую оптимизации локального поиска не уделяется достаточно внимания, а между тем это отличный способ привлечения на ваш сайт местного трафика. Включив локальную информации в свои тэги и страницы, вы можете потенциальным клиентам найти специальную информацию по району и сфере деятельности, какие их интересует.. Что такое оптимизация локального поиска? Оптимизация локального поиска – [...]...
  6. GlassBox Описание Недавно обнаружили весьма интересную javascript библиотеку Glassbox.С ее помощью можно создавать прозрачные рамки, цветные полупрозрачные слои и различные визуальные эффекты, такие как плавное появление и исчезновение слоев.. Эта библиотека весьма компактна и включает в себя библиотеки Prototype и Script.aculo.us. К основным плюсам библиотеки можно отнести: * Легкость использования; * Кроссбраузерность (Работает в IE6+ , [...]...
  7. Ловушка для спам-бота Многие спам-боты, чтобы скрыть свои реальные имена (названия), которые легко отследить по записи user_agent, изменяют эту запись, меняя её на записи разных браузеров (например: «mozilla/4.0 (compatible; msie 5.5; windows nt 5.0)» и так далее). Также эти боты игнорируют стандарты записей для файла robots.txt (описание стандарта Вы можете прочесть здесь http://www.robotstxt.org/wc/exclusion.html robots.txt standard).. Можно, конечно, пойти [...]...
  8. Частые ошибки при поисковой оптимизации сайта. Как это избежать? 22 наиболее часто встречаемых ошибок при самостоятельной оптимизации сайта под поисковые системы:. Регистрируемая в поисковой системе страница должна содержать ссылки на другие страницы сайта. В противном случае она будет единственным, что проиндексирует поисковая машина.Не стоит регистрировать сайт в поисковых системах, который находится в стадии разработки (к каталогам, доскам объявлений и форумам это относиться в меньшей [...]...
  9. MySQL – это просто! Сначала ответим на вопрос – что такое MySQL? Это База Данных (БД), в которой структурировано хранятся данные. Следует второй вопрос – зачем отказываться от простых и удобных файлов к сложной БД? Потому что файлы, генерируемые каким либо скриптом на основе файловой БД (гостевые книги, CMS, форумы), постепенно начинают увеличиваться в размере, а так же их [...]...
  10. В PHP 5.3 появился ActiveRecord аналогичный Ruby on Rails Поиски решения активной записи в php были изнурительны до того момента, как один из источников в google не предложил вариант ActiveRecord аналогичный Ruby on Rails. Читатель заметит, что вышеупомянутые результаты слишком устаревшие и большая часть из них мало общего с действенностью.. В конце концов, PHP получит более надежный способ активной записи аналогичный способу применяемому в [...]...
  11. Пример создания многоязыкового приложения (XML) Введение Вопрос разработки многоязычного web – приложения (сайта) или приложения с поддержкой интерфейса пользователя на разных языках, поднимается довольно часто. Если еще пару лет назад данная задача была не так актуальна, то сейчас подобная функциональность де – факто стала одним из требований заказчика при создании web – ориентированного приложения.. Формулировка задачи Целью данной работы является [...]...
  12. Поисковая оптимизация сайта Люди, которые занимаются раскруткой и продвижением сайтов, прекрасно знают, что сейчас в Интернете можно найти тонну статей на эту тему, но часто они противоречат друг другу, к тому же при всем обилии информации на эту тему, очень часто можно встретить самые элементарные ошибки, связанные с раскруткой сайта. Данный обзор предназначен, в основном, для новичков и [...]...
  13. Поисковая оптимизация. Что и к чему? Данная статья представляет собой обзорный материал о поисковой оптимизации. Для начала введем несколько понятий: . SEO – (search engine optimization от англ.) комплекс мероприятий по продвижению и раскрутки ресурса с целью выхода на первые места в поисковых системах по определенным запросам. Контент – текстовое содержание ресурса. Релевантность – соответствие оптимизируемой страницы требуемым ключевым словам. Ключевое [...]...
  14. Всплывающее меню для одностраничного портала Введение Недавно решил изучить ASP.NET и одновременно создать что-нибудь полезное, посложнее «Hello, world!». Первое знакомство с ASP.NET у меня началось с IBuySpy. Довольно быстро разобравшись с этим Shared Source проектом, я начал его перекраивать под свои нужды. В итоге осталось довольно мало оригинального кода, кроме части ядра (ибо, зачем изобретать велосипед? ). Кроме всего прочего, [...]...
  15. Оптимизация сайта под поисковые системы Информация о продвижении и раскрутке сайтов взята с сайта . Введение Данный курс предназначен для авторов и владельцев сайтов, желающих более подробно заняться вопросами поисковой оптимизации и раскрутки своего ресурса. Рассчитан он в основном на начинающих, хотя и опытный вебмастер, надеюсь, почерпнет из него что-то новое. В Интернете можно найти большое количество статей по теме [...]...

Комментарии запрещены.