Простой шаблонизатор (Оценка: -1)

Печать / RSS-лента
высмотрел в DCMS 7 легонький шаблонизатор и немножко его изменил под себя:

<?php
define('BASE_DIR', $_SERVER["DOCUMENT_ROOT"]);
/**
* Класс шаблонизатора
*/

class template {
/*
* $tpl_dir папка шаблонов (по умолчанию /tpl/)
* $tpl_ras расширение шаблонов (по умолчанию .php)
* $tpl_cache кеш шаблона
* $tpl_var_value массив со значениями и переменными которые мы будем передавать шаблону
*/
public $tpl_dir = '/tpl/';
public $tpl_ras = '.php';
protected $tpl_cache = null;
protected $tpl_var_value = array();

/*
* $name название переменной которой задаем значения(е)
* $value значения(е) которые мы задаем переменной
*/
public function assign($name, $value = null) {
if (is_array($name)) {
foreach ($name as $key => $value) {
$this->assign($key, $value);
}
return;
}
$this->tpl_var_value[$name] = $value;
}

/*
* $tpl_name имя загружаемого шаблона
*/
public function display($tpl_name) {
if (file_exists(BASE_DIR . $this->tpl_dir . $tpl_name . $this->tpl_ras)) {
$this->tpl_cache = file_get_contents(BASE_DIR . $this->tpl_dir . $tpl_name . $this->tpl_ras);
ob_start();
extract($this->tpl_var_value);
eval('?>' . $this->tpl_cache);
return ob_get_contents();
} else echo 'Шаблон '. $tpl_name .' не найден в '. $this->tpl_dir;
}

}
?>


использованние:


<?php

$doc = new template();
$el = array();
$el[] = array('a' => 'тестовое значение 1');
$doc->assign('el', $el);
$doc->assign('aa', 'тестовое значение 2');
$doc->display('test.tpl');

?>


содержание test.tpl.php:


<?
echo $aa;
?>
<br />
<?
foreach ($el AS $element) {
echo $element['a'];
}
?>


ЗЫ ООП еще только осваиваю)))
Автор статьи: Олег (07.05.13 / 23:26)
ООП, шаблонизатор, PHP
Рейтинг: -1
Просмотров: 1046
Комментарии (14) »