есть такой вопрос, точнее хорошо и удобно ли я делаю, или камень какой либо подводный существует в данной реализации шаблонизатора.
мысль сделать удобство и непринужденность , отделить пых от верстки и прочее
шаблонизатор
// тут класс шаблонизатора, который подключается по автолоаду
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