如何从 twig/intl-extra 启用国际扩展

How to enable the Intl extension from twig/intl-extra

我已经 运行 浏览了文档,但找不到初始化的位置 twig/intl-extra

The twig doc here 表示使用 use Twig\Extra\Intl\IntlExtension; 或在 Twig 环境中显式添加扩展

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

我希望 tpo 使用第二种情况并明确添加到 twig 环境中。

我应该在哪个文件中做?

在 Symfony 中使用 twig 时,您应该在 services.yaml 文件中将扩展注册为服务。

如果使用 twig/extensions flex 配方安装,它将提供 config/packages/twig_extensions.yaml 文件,您只需取消注释所需的扩展(参见 github 上的 original comment ).

default configuration供参考:

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

上面的回答在 symfony 4 中不起作用。Extension 的路径不同。 例如 IntlExtension 需要这样配置:

services:
    Twig\Extra\Intl\IntlExtension: null