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

высмотрел в 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']; 
 }
 ?>

ЗЫ ООП еще только осваиваю)))

URL: https://visavi.net/articles/484