hrustbb2 / text_templator
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2025-06-24 03:24:21 UTC
README
Задача.
Иногда необходимо формировать какой-либо шаблонный текст путем подстановки в шаблон определенных параметров.
Например:
В зависимости от того сколько и какие параметры подставляются в шаблон нам необходимо сформировать один из трех вариантов текста:
Список телевизоров с диагональю от 15'.
Список телевизоров с диагональю от 15' до 20'.
Список телевизоров с диагональю до 15'.
Шаблон будет выглядеть следующим образом:
Список телевизоров&{с диагональю&{от&{%from}'}&{до&{%to}'}}.
Грамматика шаблона проста.
Кроме текста здесь присутствуют блоки, которые заключены в фигурные скобки { }, переменные параметры, которые заключены в {% }, перед блоком либо параметром может стоять модификатор &, который указывает на то, что перед блоком не нужно ставить запятую. Блок может включать внутри себя другие блоки и параметры.
В случае если какие-либо параметры не передаются в шаблон, то весь блок, внутри которого находится эти параметры, не отображается.
Например:
$template = new Template();
$tmp = 'Список телевизоров с диагональю&{от&{%from}'}&{до&{%to}'}';
$vars = [
'from' => 15,
'to' => 20,
];
$template->compile($tmp);
$template->loadVars($vars);
echo $template->toString();
Данный код выведет
Список телевизоров с диагональю от 15' до 20'.
В случае если в шаблон передается только параметр to
, то мы получим строку:
Список телевизоров с диагональю до 20'.
Ну, а если не передадим ни одного параметра, то получим строку:
Список телевизоров.
Больше примеров в тестах. Запуск тестов: php tests/run.php
Вопросы, предложения, пожелания можете слать сюда или https://t.me/h07_ru