Довідник конфігурації Twig (TwigBundle)
Дата оновлення перекладу 2024-05-29
Довідник конфігурації 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_service
тип: string
за замовчуванням: null
Починаючи з Twig 1.17, стратегія екранування, застосована за замовчуванням до шаблону,
визначається під час компіляції, засновуючись на імені файлу шаблону. Це означає, наприклад,
що зміст шаблону *.html.twig
екранується для HTML, а зміст *.js.twig
- для JavaScript.
Ця опція дозволяє визначити сервіс Symfony, який буде використано, щоб визначити екранування за замовчуванням, застосоване до шаблону.
autoescape_service_method
тип: string
за замовчуванням: null
Якщо визначена опція autoescape_service
, то ця опція визначає метод, який
викликається для визначення екранування за замовчуванням, застосованого до шаблону.
Якщо сервіс, визначений у autoescape_service
, є викличним (тобто він визначає
магічний метод PHP __invoke()), ви можете опустити цю опцію.
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()
,
який може бути використаний для відображення їх вузлів.
Ця опція також контролює поведінку утиліт скидання Twig .
Якщо ця опція має значення false
, функція dump()
не виводить жодного змісту.
default_path
тип: string
за замовчуванням: %kernel.project_dir%/templates
Шлях до каталогу, де Symfony шукатиме шаблони додатку Twig за замовчуванням. Якщо ви зберігаєте ці шаблони більше ніж у одному каталозі, використайте також опцію paths .
file_name_pattern
тип: string
або array
string
за замовчуванням: []
Деякі додатки зберігають свої фронт-енд ресурси у тому ж каталозі, що і шаблони
Twig. Команда lint:twig
фільтрує ці файли, щоб залишити тільки ті, які співпадають
з патерном імен файлів *.twig
.
Однак, команда cache:warmup
намагається скомпілювати всі файли, включно з
не-Twig шаблонами (та ігнорує помилки компіляції). Результатом стає зайве споживання
ресурів CPU та диску.
У таких випадках, використайте цю опцію, щоб визначити патерн(и) імен файлів для
файлів, які є шаблонами Twig (решта файлів буде проігнорована cache:warmup
).
Значення цієї опції може бути регулярним виразом, глобальним або рядком:
1 2 3 4
# config/packages/twig.yaml
twig:
file_name_pattern: ['*.twig', 'specific_file.html']
# ...
form_themes
тип: array
в string
за замовчуванням: ['form_div_layout.html.twig']
Визначає одну або більше тему форми, які застосовуються до всіх форм додатку:
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.
mailer
html_to_text_converter
тип: string
за замовчуванням: ````
Сервіс, що реалізує HtmlToTextConverterInterface, який буде використано для автоматичного створення частини електронного листа з його HTML змісту, якщо не вказано чітко.
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 :
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
.