如何从 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 ).
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
我已经 运行 浏览了文档,但找不到初始化的位置 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 ).
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