Довідник конфігурації Twig (TwigBundle)

Дата оновлення перекладу 2022-05-30

Довідник конфігурації Twig (TwigBundle)

TwigBundle інтегрує бібліотеку Twig у додатки Symfony, щоб відображати шаблони . Всі ці опції конфігуруються під ключем twig у конфігурації вашого додатку.

1
2
3
4
5
# відображає значення конфігурації за замовчуванням, визначені Symfony
$ php bin/console config:dump-reference twig

# відображає реальні значення конфігурації, які використовуються вашим додатком
$ php bin/console debug:config twig

Note

При використанні XML, ви маєте використовувати простір імен http://symfony.com/schema/dic/twig, а пов'язана XSD-схема доступна тут: https://symfony.com/schema/dic/twig/twig-1.0.xsd

Конфігурація

auto_reload

тип: boolean за замовчуванням: '%kernel.debug%'

Якщо true, то кожний раз при відображенні шаблону, Symfony спочатку перевіряє, чи змінився початковий код після останньої компіляції. Якщо змінився, то шаблон комплюється знову автоматично.

autoescape

тип: boolean або string за замовчуванням: 'name'

Якщо false, то автоматичне ерканування вимкнено (ви всеодно можете екранувати зміст індивідуально в шаблонах).

Caution

Установка цієї опції як false небезпечна, і зробить ваш застосунок вразливим до експлуатації XSS, так як більшість сторонніх пакетів припускають, що екранування підключене та самостійно не екранують зміст.

Якщо воно встановлене як рядок, то зміст шаблону екранується з використанням стратегії з цим ім'ям. Дозволені значення: html, js, css, url, html_attr і name. Значення за замовчуванням - name. Ця стратегія екранує зміст у відповідності до розширення імені шаблону (наприклад, використовує html для шаблонів *.html.twig, і js для шаблонів *.js.html).

Tip

Див. autoescape_service та autoescape_service_method, щоб визначити вашу власну стратегію екранування.

autoescape_service

тип: string за замовчуванням: null

Починаючи з Twig 1.17, стратегія екранування, застосована за замовчуванням до шаблону, визначається під час компіляції, засновуючись на імені файлу шаблону. Це означає, наприклад, що зміст шаблону *.html.twig екранується для HTML, а зміст *.js.twig - для JavaScript.

Ця опція дозволяє визначити сервіс Symfony, який буде використано, щоб визначити екранування за замовчуванням, застосоване до шаблону.

autoescape_service_method

тип: string за замовчуванням: null

Якщо визначена опція autoescape_service, то ця опція визначає метод, який викликається для визначення екранування за замовчуванням, застосованого до шаблону.

base_template_class

тип: string за замовчуванням: 'Twig\Template'

Шаблони Twig компілюються в PHP-класи до їх використання для відображення змісту. Ця опція визначає базовий клас, з якого розширюються всі класи шаблонів. Використання користувацького базового шаболну не схвалюється, так як це ускладнить зміст вашого додатку.

cache

тип: string | false за замовчуванням: '%kernel.cache_dir%/twig'

До використання шаблонів Twig для відображення деякого змісту, вони компілюються у звичайний PHP-код. Компіляція - це витратний процес, так що результат кешується у каталог, визначений цією опцією конфігурації.

Встановіть цю опцію як false, щоб відключити компіляцію шаблону Twig. Однак, це не рекомендується; навіть в середовищі dev, так як опція auto_reload гарантує, що змінени кешовані шаблони будуть скомпільовані знову.

charset

тип: string за замовчуванням: '%kernel.charset%'

Набір символів, який використовується файлами шаблонів. За замовчуванням, це те ж значення, що і параметр контейнера kernel.charset , який за замовчуванням у додатках Symfony встановлений як UTF-8.

date

Ці опції визначають значення за замовчуванням, які використовуються фільтром date для форматування значень дати та часу. Вони корисні для запобігання передачі одних і тих самих аргументів на кожний виклик фільтра date.

format

тип: string за замовчуванням: F j, Y H:i

Формат, який використовується фільтром date для відображення значень, коли не передано ніякого формату в якості аргументу.

internal_format

тип: string за замовчуванням: %d days

Формат, який використовуйється фільтром date для відображення екземплярів DateInterval, коли не передано ніякого формату в якості аргументу.

timezone

тип: string за замовчуванням: (значение, возвращённое date_default_timezone_get())

Часовий пояс, який використовується при форматуванні значень дат з фільтром date, і коли не передано ніякого часового поясу в якості аргументу.

debug

тип: boolean за замовчуванням: '%kernel.debug%'

Якщо true, то скомпільовані шаблони включають в себе метод __toString(), який може бути використаний для відображення їх вузлів.

default_path

тип: string за замовчуванням: '%kernel.project_dir%/templates'

Шлях до каталогу, де Symfony шукатиме шаблони додатку Twig за замовчуванням. Якщо ви зберігаєте ці шаблони більше ніж у одному каталозі, використайте також опцію paths.

form_themes

тип: array в string за замовчуванням: ['form_div_layout.html.twig']

Визначає одну або більше тему форми, які застосовуються до всіх форм додатку:

  • YAML
  • XML
  • PHP
1
2
3
4
# config/packages/twig.yaml
twig:
    form_themes: ['bootstrap_4_layout.html.twig', 'form/my_theme.html.twig']
    # ...

Порядок, в якому визначаються теми, важливий, так як кожна тема перевизначає усі попередні. При відображення поля форми, блок якої не визначено в темі форми, Symfony використовує попередні теми до першої.

Ці глобальні теми застосовуються до всіх форм, навіть тих, які використовують тег Twig form_theme, але ви можете віключити глобальні теми для конкретних форм .

globals

тип: array за замовчуванням: []

Визначає глобальні змінні автоматично врповаджені у всі шаблони Twig. Дізнайтеся більше про глобальні змінні Twig.

number_format

Ці опції визначають значення за замовчуванням, які використовуються фільтром number_format для форматування числових значень. Вони корисні для запобігання передачі одних і тих же аргументів за кожним викликом фільтра number_format.

decimals

тип: integer за замовчуванням: 0

Кількість десяткових знаків, які використовуються для форматування числових значень, коли не передано ніякого числа в якості аргументу фільтра number_format.

decimal_point

тип: string за замовчуванням: .

Символ, який використовується для розділення десяткових знаком від цілої частини числових значень, коли не передано ніякого конкретного символу в якості аргументу до фільтру number_format.

thousands_separator

тип: string за замовчуванням: ,

Символ, який використовується для відокремлення кожної групи тисяч у числових значеннях, коли не передано ніякого конкретного символу в якості аргументу фільтра number_format.

optimizations

тип: integer за замовчуванням: -1

Twig включає в себе розширення під назвою optimizer, яке підключається за замовчуванням у додатках Symfony. Це розширення аналізує шаблони для їх оптимізації при компіляції. Наприклад, якщо ваш шаблон не використовує спеціальну змінну loop всередині тегу for, то це розширення видаляє ініціалізацію невикористаної змінної.

За замовчуванням, ця опція - -1, що означає, що всі оптимзації увімкнено. Встановіть її як 0, щоб відключити всі оптимізації. Ви навіть можете увімкнути або відключити ці оптимізації вибірково, як пояснюється у документації Twig про розширення оптимізатора.

paths

тип: array за замовчуванням: null

Визначає каталоги, де Symfony шукатиме шаблони Twig на додаток до каталогу, визначеному в опції default_path:

  • YAML
  • XML
  • PHP
1
2
3
4
5
6
# config/packages/twig.yaml
twig:
    # ...
    paths:
        'email/default/templates': ~
        'backend/templates': 'admin'

Прочитайте більше про каталоги та простори імен шаблонів .

strict_variables

тип: boolean за замовчуванням: %kernel.debug%

Якщо встановлена як true, Symfony відображає виключення кожний раз, коли не існує змінної, атрибуту або методу Twig. Якщо встановлена як false, то ці помилки ігноруються, а неіснуючі значення замінюються на null.