Лучше ответьте себе на вопрос: зачем писать свой шаблонизатор при наличии кучи готовых?
Если в академических целях - ok.
Если для реального использования - не стоит.
Ну а вообще понимаете правильно. Простейший шаблонизатор.
Шаблон:
<h1>{{title}}</h1>
Шаблонизатор:
class Template {
private $data = [];
public function set($name, $value) {
$key = '{{' . $name . '}}';
$this->data[$key] = $value;
}
public function get($name) {
$key = '{{' . $name . '}}';
return $this->data[$key];
}
public function render($fileName) {
$source = file_get_contents($fileName);
$build = str_replace(array_keys($this->data), array_values($this->data), $source);
return $build;
}
}
Использование:
$tmpl = new Template();
$tmpl->set('title', 'Hello');
echo $tmpl->render($templatesDirectory . 'main.tpl');