Просмотр поста

.
Koenig
(\/)____o_O____(\/)

есть такой вопрос, точнее хорошо и удобно ли я делаю, или камень какой либо подводный существует в данной реализации шаблонизатора.
мысль сделать удобство и непринужденность , отделить пых от верстки и прочее
шаблонизатор

// тут класс шаблонизатора, который подключается по автолоаду
class template {

function __construct() {

foreach ($GLOBALS as $k => $v) {
global $$k;    
$$k = $v;
}
    
$param = func_get_args();
$row = array();
foreach ($this as $k => $v) 
$row[$k] = $this->var_filter($v);
file_exists($param[0]) ? include($param[0]) : print('Файл шаблона отсутствует или не правильно указан путь');
}

function var_filter($var) {
return htmlentities($var,  ENT_QUOTES, 'UTF-8');
}

}

далее скажем индекс, в который могут инклюдиться всякое разное добро, и в нем вызов шаблона
spl_autoload_register('autoload');   
function autoload($class) {
$file = dirname(__FILE__) . DS . 'classes' . DS . $class . '.php';
if (file_exists($file)) {
require_once($file);
} else {
die('Класс - ' . $class . ' не найден');  
}
}

// произвольный код //

$test_var = 'this is a test varible';

$sql = mysql_query("select * from " . $tab));  
if (mysql_num_rows($sql)>0) {
while ($obj = mysql_fetch_object($sql, 'template', array('tpl/index/tpl.tpl')));
} else {
echo 'пусто';    
}

// далее код //

шаблон

<!-- tpl -->
<div><a href="?link=<?= $row['id'] ?>"><?= $row['name'] ?></a></div>
<?= $test_var // каббе глобальная, не нужно задумываться о инициализации // ?>
?>
<!-- end tpl -->

вот тут терзают сомнения, по идеи плохого ни чего не должно случиться, то есть если мы подключили ядро, то в шаблоне можно использовать скажем переменную $rights