Как включить расширение Intl из twig/intl-extra

Я просматривал документы и не мог найти, где инициализировать twig/intl-extra

Документация twig здесь говорит либо использовать use Twig\Extra\Intl\IntlExtension;, либо добавить расширение явно в среде Twig

$twig = new \Twig\Environment(...);
$twig->addExtension(new IntlExtension());

Я хотел бы использовать второй случай и явно добавить в среду twig.

В каком файле это делать?


person Preciel    schedule 28.08.2019    source источник
comment
Нашел, спасибо, пришлось добавить Twig\Extra\Intl\IntlExtension: ~ в services.yaml. Вы должны написать это как ответ, чтобы я мог проверить его @msg   -  person Preciel    schedule 28.08.2019


Ответы (2)


При использовании twig с Symfony вы должны зарегистрировать расширение как службу в вашем файле services.yaml.

Если он установлен с использованием рецепта twig/extensions flex, он предоставит файл config/packages/twig_extensions.yaml, вам просто нужно раскомментировать нужные расширения (см. исходный комментарий на github).

конфигурация по умолчанию для ссылка:

services:
    _defaults:
        public: false
        autowire: true
        autoconfigure: true

    # Uncomment any lines below to activate that Twig extension
    #Twig\Extensions\ArrayExtension: null
    #Twig\Extensions\DateExtension: null
    #Twig\Extensions\IntlExtension: null
    #Twig\Extensions\TextExtension: null
person msg    schedule 28.08.2019

Ответ выше не будет работать в symfony 4. Путь к расширению другой. Например, IntlExtension нужно настроить так:

services:
    Twig\Extra\Intl\IntlExtension: null
person Biegacz    schedule 21.05.2020