Як автоматично впрповаджувати змінні у всі шаблони
Дата оновлення перекладу 2023-06-22
Як автоматично впрповаджувати змінні у всі шаблони
Twig дозволяє автоматичне впровадження однієї або більше змінних у всі шаблони. Ці
глобальні змінні визначаються в опції twig.globals
всередині головного файлу
конфігурації Twig:
1 2 3 4 5
# config/packages/twig.yaml
twig:
# ...
globals:
ga_tracking: 'UA-xxxxx-x'
Тепер змінна ga_tracking
доступна у всіх шаблонах Twig, тому ви можете
використовувати її без необхідності її чіткої передачі з контролера або сервісу,
що відображує шаблон:
1
<p>The google tracking code is: {{ ga_tracking }}</p>
Посилання на сервіси
На додаток до статичних значень, глобальні зммінні Twig також можуть посилатися на сервіси з сервіс-контейнера. Основним недоліком є те, що ці сервіси не підлягають лінивому завантаженню. Іншими словами, як тільки завантажується Twig, ваш сервіс існтанціюється, навіть якщо ви взагалі не використовуєте цю глобальну змінну.
Щоб визначити сервіс в якості глобальної змінної Twig, додайте до рядку ID сервісу
префікс, який починається з символу @
, що є звичайним синтаксисом для
посилання на сервіси у параметрах контейнера :
1 2 3 4 5 6
# config/packages/twig.yaml
twig:
# ...
globals:
# значення - id сервісу
uuid: '@App\Generator\UuidGenerator'
Тепер ви можете використати змінну uuid
у будь-якому шаблоні Twig, щоб отримати
доступ до сервісу UuidGenerator
:
1
UUID: {{ uuid.generate }}