Сейчас загружается

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:

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