Просмотр поста

.
Delphinum
Шаблонизатор
Пакет Bricks.TemplateEngine.Php создавался с учетом того, что язык PHP в целом есть шаблонизатор. Вы не найдете в синтаксисе, используемом данным пакетом для шаблонизации ничего, кроме стандартных средств языка PHP, что делает его максимально быстрым, простым в освоении и функциональным в использовании.

Рассмотрим пример использования данного шаблонизатора для рендеринга простой HTML страницы (расположенной в файле page.html) следующего содержания:
<html>
<head>
<title><?= $title ?></title>
</head>
<body>
<?= $content ?>
</body>
</html>


Для рендеринга этой страницы достаточно выполнить интерпретацию содержимого с помощью PHP, указав необходимые переменные окружения ($title и $content):
<?php
use Bricks\TemplateEngine\Php\Template;

$template = new Template('page.html');
$template->title = 'Моя страница';
$template->content = 'Любой контент';
echo $template;


В результате мы получим страницу следующего содержания:
<html>
<head>
<title>Моя страница</title>
</head>
<body>
    Любой контент
</body>
</html>


Возможно вы уже заметили, что рендеринг страницы происходит в момент преобразования объекта шаблона в строку. Это позволяет нам не только выводить шаблон в окно браузера, но и сохранять его в файл (на пример):
<?php
use Bricks\TemplateEngine\Php\Template;

$template = new Template('page.html');
$template->title = 'Моя страница';
$template->content = 'Любой контент';
file_put_contents('page.swp.html', $template);


Используя этот принцип, можно легко реализовать кэш шаблонизатора, что позволит уменьшить время отклика системы.

Важно так же отметить, что данный шаблонизатор можно использовать для рендеринга текстовых данных любого типа (page.md):
# <?= $title ?>
<?= $content ?>


<?php
use Bricks\TemplateEngine\Php\Template;

$template = new Template('page.md');
$template->title = 'Моя страница';
$template->content = 'Любой контент';
echo $template;


Архив с примером