class Template (Шаблон)
Используется для рендеринга активных php-шаблонов (php-код смешанный с html).
По умолчанию класс осуществляет кэширование результатов отработки на основе переданных данных.
В классе определены магические методы __get и __set, передавать данные в шаблон можно простым обращением к свойству объекта. Внутри шаблона к данным можно обращаться с использованием конструкции $this->someKey. Стоит помнить о том, что вызов магических методов в PHP очень затратная операция, для получения максимальной производительности рекомендуем вам использовать прямой вызов методов get(), set() и setProperties().
class Template {
/** * Установить менеджер кэша шаблонов, системный метод * @param Cache_Interface $manager */static public function setCache(Cache_Interface $manager)
/** * Рендер шаблона * @param string $path — путь к файлу шаблона * @return string */public function render($path)
/** * Очистить данные шаблона */public function clear()
/** * Отключить кэширование */public function disableCache()
/** * Включить кэширование */public function enableCache()
/** * Получить данные шаблона * @return array */public function getData()
/** * Переопределить данные шаблона используя ассоциативный массив ключ - значение, * старые данные перетираются * @param array $data */public function setData(array $data)
/**
* Установить свойства шаблона
* @param string $name
* @param mixed $value
*/
public function set($name , $value)
/**
* Установить несколько свойств шаблона
* используя в качестве входящих параметров ассоциативный массив
* @param array $data
*/
public function setProperties(array $data)
/**
* Получить значение свойства
* @param string $name
* @return mixed
*/
public function get($name)
}
Пример:
<?php
$template = new Template();
// медленно
$template->page = Page::getInstance();
$template->someData = array('apple','orange','banana');
// в 3-4 раза быстрее
$template->setProperties(
array(
‘page’=>Page::getInstance(),
‘someData’=>array('apple','orange','banana')
);
)
echo $template->render('/path/to/template/tpl.php');
?>
Содержание файла /path/to/template/tpl.php
<h3>Items:</h3>
<ul>
<?php
if(isset($this->someData) && is_array($this->someData))
foreach ($this->someData as $item)
echo '<li>'.$item.'</li>'
?>
</ul>
comments powered by Disqus