Стандартные функции Twig
Стандартные функции
attribute()
Доступ к динамическому атрибуту объекта:
attribute()
{{ attribute(object, method) }}
{{ attribute(object, method, arguments) }}
{{ attribute(object, 'data-value') }}
block()
Выводит содержимое блока:
block()
{{ block('title') }}
{{ block('title', 'template.html.twig') }}
constant()
Доступ к PHP-константам:
constant()
{{ constant('PHP_INT_MAX') }}
{{ constant('App\\Entity\\User::STATUS_ACTIVE') }}
{{ constant('STATUS_ACTIVE', user) }}
cycle()
Циклически возвращает элементы массива:
cycle()
{% for row in items %}
<tr class="{{ cycle(['odd', 'even'], loop.index0) }}">
<td>{{ row.name }}</td>
</tr>
{% endfor %}
date()
Создаёт объект даты:
date()
{% set now = date() %}
{% set tomorrow = date('+1 day') %}
{% set specific = date('2026-01-15') %}
{{ date('now')|date('d.m.Y') }}
dump()
Выводит отладочную информацию о переменной:
dump()
{{ dump(variable) }}
{{ dump(user, config) }}
{{ dump() }}
совет
dump() работает только при включённом debug режиме. В production ничего не выводится.
enum()
Доступ к PHP enum:
enum()
{% if status == enum('App\\Enum\\Status').Active %}
html_classes()
Генерирует строку CSS-классов:
html_classes()
<div class="{{ html_classes('card', {
'card-active': is_active,
'card-highlighted': is_highlighted,
'card-disabled': is_disabled
}) }}">
include()
Включает шаблон как функцию и возвращает строку:
include()
{{ include('@common/components/icon.html.twig', {name: 'user'}) }}
{{ include('template.html.twig', with_context: false) }}
max() / min()
Максимальное или минимальное значение:
max() / min()
{{ max(1, 5, 3) }}
{# 5 #}
{{ min(prices) }}
{{ max(user.age, 18) }}
parent()
Содержимое блока из родительского шаблона:
parent()
{% block sidebar %}
{{ parent() }}
<div>Дополнительный контент</div>
{% endblock %}
random()
Случайное значение:
random()
{{ random() }}
{{ random(10) }}
{# 0..10 #}
{{ random(['apple', 'banana', 'cherry']) }}
{{ random('hello') }}
range()
Создаёт массив чисел:
range()
{% for i in range(0, 10) %}
{{ i }}
{% endfor %}
{% for i in range(0, 100, 5) %}
{{ i }}
{% endfor %}
source()
Возвращает исходный код шаблона без рендеринга:
source()
{{ source('template.html.twig') }}
{{ source('template.html.twig', ignore_missing: true) }}
template_from_string()
Создаёт шаблон из строки:
template_from_string()
{% set tmpl = template_from_string('Hello {{ name }}!') %}
{% include tmpl with {name: 'World'} %}