Шаблоны

Для работы с шаблонами существует класс template

$tpl = new template([$gz_lvl = false, $encoding = 'UTF-8']); или $tpl = template::instance([$name = null, $gz_lvl = false, $encoding = 'UTF-8']);

Где:

$gz_lvl
Степень сжатия
$encoding
Кодировка для mb_ функций
$name
Имя шаблона. Актуально если возникает необходимость сохранить шаблон в памяти для того, чтобы в последствии обратится к нему из другого файла или функции

В случае если указан $gz_lvl - то для сжатия будет использована одна из фукций zlib-encode или gzencode. Сжатие происходит только в случае использования метода display.

Т.о. должны выполнятся следующие условия:

  1. Наличие одной из этих функций
  2. Заголовки не должны быть отправлены браузеру
  3. Браузер должен поддерживать метод сжатия
$tpl->ttext($text[, $use_cache = false]);

Создаёт шаблон из обычного текста. Здесь:

$text
Текст шаблона
$use_cache
Использовать или нет кэш.
$tpl->tfile($tpl_name[, $use_cache = false, $vars = array()]);

Создаёт шаблон из файла. Здесь:

$tpl_name
Имя файла/шаблона
$use_cache
Использовать или нет кэш. Используется для того, чтобы многократно не перечитывать один и тот-же файл
$vars
Дополнительные переменные, которые можно передать в файл. Представляет собой массив вида array('key' => $value), соотв. в файле можно использовать как переменную $key и т.д.
$tpl->temp($array = array()[, $s = '{', $e = '}', $without_cache = false]);

Преобразует метки {*} в значения

$array
Массив значений для замены. Формат - array('что_заменяем' => 'на_что_заменям'). В конечном итоге заменятся маркеры формата $s.что_заменяем.$e
$s
Символ, открывающий маркеры
$e
Символ, закрывающий маркеры
$without_cache
Принудительно не использовать кэш

на_что_заменям так-же может быть массивом. В этом случае:

  • Если есть ключ file - то значением должен быть путь до файла, содержимым которого надо заменить маркер.
  • Если есть ключ function - то значением должна быть функция или метод, которые будут вызваны и рузальтат заменит маркер.
  • Если есть ключ class - будет создан экземляр класса. Значением class может быть
    1. Имя класса
    2. Экземляр класса
    3. Путь до файла
      1. Если дополнительно указать classname - то шаблонизатор попытается найти данный класс в этом файле
      2. Иначе в качестве имени будет использовано имя файла без расширения
    Так-же можно указать методы (в виде массива) и/или свойство класса. В этом случае результатом замены будет результат последнего метода или значения свойства
  • Иначе метод рекурсивно запустит сам себя с данным массивом в качестве $array

Is Updated, soon...