Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

  Раздел: Компьютерная документация -> Интернет технологии -> PHP

 

Реализация шаблонов на 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; //Выводим нашу страничку
?>


Заключение.

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

Автор: Овчинников Сергей
Источник: www.web-faq.ru

Ссылки по теме
Внутренние функции
Обработка строк в РНР
PHP и всё такое...
Пишем PHP код, устойчивый к ошибкам
Полезные скрипты на PHP
Почтовые функции в РНР
Полезные функции для работы с файловой системой

Вся документация PHP

 

Компьютерная документация от А до Я - Главная

 
Популярные книги

Photoshop CS2 для пользователя

Подробнее

Общая информатика. Универсальный курс

Подробнее

Ремонт и обслуживание компьютера дома

Подробнее


 
Новости ИТ
04.12.2008  В Windows 7 запуск приложений Direct3D 10/10.1 будет возможен на CPU
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с зашитой данных
04.12.2008  A-DATA выпускает двух- и трёхканальные наборы памяти DDR3-1800+ в серии XPG Plus
04.12.2008  MOTOROKR EM35
04.12.2008  Шведский производитель ковриков для мышей выпустил игровую гарнитуру
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с защитой данных
04.12.2008  Вышла вторая бета-версия Windows Vista SP2
04.12.2008  Внешний SSD-накопитель с поддержкой eSATA и USB
04.12.2008  Флэшка OCZ со встроенным кард-ридером
04.12.2008  Весрия «ПАУ» 1.8.2 будет содержать новый функционал
04.12.2008  Компания «Русские Информационные Технологии» подготовила бета-версию программы «Печать конвертов!»
04.12.2008  Телефон премиум-класса с двумя SIM-картами
04.12.2008  High-end десктопы Asus Eee Box
04.12.2008  Видеокарта NVIDIA Quadro FX 4800 для профессионалов
04.12.2008  Экстремальные внешние HDD от Iomega
04.12.2008  MSI EX300 - 13.3 дюйма для развлечения
04.12.2008  SATA 3.0 появится в следующем году
04.12.2008  Mini-ITX-плата Zotac на основе логики NVIDIA и с поддержкой Wi-Fi
04.12.2008  Корпус NZXT Zero 2: улучшенное охлаждение и строгий дизайн
04.12.2008  Конвертеры: Xilisoft Video Converter v.5.1.7.1128
 
Полезно

курсы бухгалтеров и курсы 1с
новинки сотовых мобильных телефонов nokia
 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100