Решение не претендует на уникальность, все это уже было использовано ранее в других шаблонизаторах и фреймворках, но большинство из них имеет множество зависимостей и/или дополнительного функционала. Этот пакет же содержит только самое необходимое для рендеринга PHP шаблонов, и ничего более.

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