Для работы с шаблонами существует класс 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.
Т.о. должны выполнятся следующие условия:
- Наличие одной из этих функций
- Заголовки не должны быть отправлены браузеру
- Браузер должен поддерживать метод сжатия
$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 может быть
- Имя класса
- Экземляр класса
- Путь до файла
- Если дополнительно указать classname - то шаблонизатор попытается найти данный класс в этом файле
- Иначе в качестве имени будет использовано имя файла без расширения
- Иначе метод рекурсивно запустит сам себя с данным массивом в качестве $array