Я не фанат дополнительных шаблонных языков (которые заменяют символы подстановки), вместо этого я хотел бы сохранить свои шаблоны в чистом php, чтобы моя версия того, что вы сделали, была бы:
<div id="blah"><b><?php echo $username ?></b><?php echo $stuff ?><...>
echo GetTemplate( 'myTemplate.php', array ( 'username' => 'Stranger', 'stuff' => 'Stuff' ) );
function GetTemplate($templatePath, array $vars = array())
{
extract($vars);
ob_start();
include($templatePath);
return ob_get_clean();
}
Я также могу объединить это с вспомогательными функциями / объектами-> методами, например:
<?php echo link_to($name, $url); ?>
function link_to($name, $url, array $attributes = array())
{
$attributes['href'] = urlencode($url);
foreach($attributes as $attrib => $value)
{
$attributes[$attrib] = $attrib."=\"$value\"";
}
return sprintf('<a %s>%s</a>', implode(" ",$attributes), $name);
}
Я обычно применяю подобные помощники к часто используемым тегам / структурам, а также к тегу общего назначения html, который выглядит примерно так: content_tag($tag, $content, $attributes);
Это помогает мне избежать php-эха для множества атрибутов для случайных тегов. Я, очевидно, не использую его для каждого HTML-тега, который я использую только для тех, где он обеспечивает лучшую читаемость, чем тонна эха.
Что касается шаблонизаторов, я действительно не вижу преимущества, так как php - шаблонизатор. Что касается непрограммистов / кодировщиков, то им приходится упростить синтаксис для цикла и переменной, как бы то ни было, поэтому я не вижу, как изменение его на подстановочные знаки или синтаксис {} разумности добавляет что-либо.