ramzes, Тем, что данные сбрасываются неявно. Такой интерфейс лучше всего подходит для единичных экземпляров.
Сравни:
$t = new Template('/path/to/templates/dir/t1.tpl');
$t->key1 = 'val1';
echo $t->render();
// key1 больше не существует
$t->setPath('/path/to/templates/dir/t2.tpl')
$t->key2 = 'val2';
echo $t->render();
// key2 больше не существуетИ:
$e = new Engine('/path/to/templates/dir');
echo $e->render('t1.tpl', ['key1' => 'val1']);
echo $e->render('t2.tpl', ['key2' => 'val1']);Какой лучше читается и понимается без чтения документации?