Простой нативный шаблонизатор на PHP

Задача шаблонизатора - только подставлять определённые значения в определённые места, а все циклы я могу написать и на PHP, и промежуточный язык для этого не требуется. привожу код своего шаблонизатора

Простой нативный шаблонизатор на PHP

» » Сообщение:

Задача шаблонизатора - только подставлять определённые значения в определённые места, а все циклы я могу написать и на PHP, и промежуточный язык для этого не требуется.

Итак, привожу код своего шаблонизатора, которым я настоятельно рекомендую Вам пользоваться:

php Код: Выделить всё Развернуть
<?php
class Template 
{

  private $dir_tmpl; // Директория с tpl-файлами
  private $data = array(); // Данные для вывода

  public function __construct($dir_tmpl) {
    $this->dir_tmpl = $dir_tmpl;
  }

  /* Метод для добавления новых значений в данные для вывода */
  public function set($name, $value) {
    $this->data[$name] = $value;
  }

  /* Метод для удаления значений из данных для вывода */
  public function delete($name) {
    unset($this->data[$name]);
  }

  /* При обращении, например, к $this->title будет выводиться $this->data["title"] */
  public function __get($name) {
    if (isset($this->data[$name])) return $this->data[$name];
    return "";
  }

  /* Вывод tpl-файла, в который подставляются все данные для вывода */
  public function display($template) {
    $template = $this->dir_tmpl.$template.".tpl";
    ob_start();
    include ($template);
    echo ob_get_clean();
  }
}
?>

Всего 1 файл размером 0.5 КБ. Но при этом всё самое важное данный класс сделает.

Теперь создадим tpl-файл (пусть называется menu.tpl), который будет без проблем обработан этим шаблонизатором:

php Код: Выделить всё Развернуть
<ul>
  <?php foreach ($this->menu as $link => $name) { ?>
    <li>
      <a href="<?=$link?>"><?=$name?></a>
    </li>
  <?php } ?>
</ul>

И, наконец, давайте напишем PHP-файл, который будет вызывать шаблонизатор:

php Код: Выделить всё Развернуть
<?php
  $template 
= new Template("tmpl/");
  $menu = array();
  $menu["http://site.ru"] = "Главная";
  $menu["http://site.ru/page-1.html"] = "Страница 1";
  $menu["http://site.ru/page-2.html"] = "Страница 2";
  $template->set("menu", $menu);
  $template->display("menu");
?>
Вложения
Зарегистрируйтесь, чтобы скачать вложения.
шаблонизатор, нативный, class template



Похожие темыКомментарии ПросмотрыПоследнее сообщение
0976Простой и небольшой скрипт определя...
Сообщение от: Admin
0425Image to URI, простой способ конвер...
Сообщение от: Admin
0981Прощай Smarty или простой шаблониза...
Сообщение от: Admin
0781Простой JavaScript шаблонизатор
Сообщение от: Admin