Любой полноценный фреймворк имеет свою реализацию для разделения скриптов на программный код и шаблоны оформления. Какие-то фреймворки имеют свои шаблонизаторы, какие-то интегрируют сторонние решения, но если вы какую-то часть своего веб-приложения решили сделать без фреймворка, то выбор шаблонизаторов невелик. Я не беру в рассчет какие-то крупные шаблонизаторы с большим функционалом, т.к. считаю что если вы решили отказаться от фреймворка в пользу чистого PHP, то реализация шаблонов должна быть очень простой.
Если вам в приложении нужны сложные шаблоны, то вряд ли делать его без фреймворка будет хорошей идеей.
PHP сам по себе в какой-то степени является шаблонизатором, т.к. позволяет писать PHP и HTML код в одном файле. Это значит что разделение кода на шаблоны и программную часть будет немного искусственным, т.к. язык не ограничивает вас в использовании кода в шаблонах, или в генерации HTML в основных файлов, но хорошим тоном программирования считается когда в шаблоны не содержат бизнес-логики, и оперируют предварительно подготовленными переменными с данными, а основной код приложения не содержит HTML кода.
Чтобы не таскать между приложениями одни и те же классы, я выделил их в отдельный пакет composer, думаю что можно считать это простым шаблонизатором.
Установка через Composer
composer require denis909/php-view
Пример использования:
use denis909\view\View;
use denis909\view\Config;
$config = new Config;
$config->templatesPath = __DIR__ . '/templates';
$view = new View($config);
$content = $view->render('test', ['param1' => 'value 1']);
echo $content;
Тестовый шаблон:
<h1>top</h1>
<?= $this->escape($param1);?>
<p>bottom</p>
Решение не претендует на уникальность, все это уже было использовано ранее в других шаблонизаторах и фреймворках, но большинство из них имеет множество зависимостей и/или дополнительного функционала. Этот пакет же содержит только самое необходимое для рендеринга PHP шаблонов, и ничего более.
Ссылка на GitHub: https://github.com/denis909/php-view
16.08.2019