Перейти к основному содержимому

Стандартные функции 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'} %}