Twig. Макросы, include и расширенные возможности
Макросы (аналог функций в шаблонах)
macros.html.twig
{% macro alert(type, message) %}
<div class="alert alert-{{ type }}">{{ message }}</div>
{% endmacro %}
{% from "macros.html.twig" import alert %}
Использование:
{{ alert('success', 'Данные сохранены!') }}
Включение шаблонов (include)
{% include 'header.html.twig' %}
{% include 'user/card.html.twig' with {'user': current_user} %}
Глобальные переменные и функции
Можно добавить свои:
$twig->addGlobal('site_name', 'Мой Сайт');
$twig->addFunction(new \Twig\TwigFunction('sum', function ($a, $b) {
return $a + $b;
}));
В шаблоне:
{{ site_name }}
{{ sum(2, 3) }}
🧠 Советы:
- Всегда используйте экранирование:
{{ user_input|e }}или включите autoescape. - Twig автоматически экранирует HTML по умолчанию (если включено).
- Для отладки — используйте
{{ dump() }}.
Share this content:



Отправить комментарий