Intl 扩展是 Twig 的扩展,它添加了,localizeddate
和localizednumber
过滤localizedcurrency
器。如何安装和设置扩展,以便可以在我的 Twig 模板中使用这些过滤器?
2 回答
安装 PHP 国际扩展
首先,您将需要PHP intl 扩展,因为 Twig 扩展是在此之上构建的。如果未启用 PHP intl 扩展,Twig Intl 扩展将抛出异常。安装说明可以在官方 PHP 文档中找到。
在 Ubuntu/Debian 机器上,这就像运行以下命令一样简单:
sudo apt install php-intl
在 Windows 机器上,您可能必须取消注释 php.ini 中的以下行:
extension=php_intl.dll
对于 CentOS 或其他架构,请按照此处的说明进行操作。请注意,CentOS 需要安装 PECL 和 GCC C++ 编译器:yum install php-pear
和yum install gcc-c++
.
将扩展添加到 php.ini 后,重新启动 Web 服务器。
安装树枝扩展
接下来,您将需要可以使用 Composer 安装的Twig Extensions包(其中包含 Intl 扩展等)。在命令行中运行此命令:
composer require twig/extensions
这会将依赖项添加到您的composer.json
并下载它。
注意:localizednumber
andlocalizedcurrency
过滤器是在 1.2.0 版本中引入的,所以如果你想使用它们,你至少需要那个版本。
将扩展添加到 Twig
如果您直接使用 Twig(即不在 Symfony 项目中),请手动将扩展添加到 Twig 环境中:
<?php
use Twig\Environment;
use Twig\Extensions\IntlExtension;
$twig = new Environment($loader);
$twig->addExtension(new IntlExtension());
将扩展添加到 Twig(在 Symfony 中)
如果您使用的是 Symfony 应用程序,您可以通过创建服务并将其标记为 Twig 扩展来将扩展添加到 Twig config/services.yml
:
services:
twig.extension.intl:
class: Twig\Extensions\IntlExtension
tags:
- { name: twig.extension }
设置默认语言环境
<?php
Locale::setDefault('nl-NL');
在 Symfony 中设置默认语言环境
在config/framework.yaml
中,取消注释default_locale
设置:
framework:
default_locale: en
在 Symfony 3/4/5 中,启用了自动配置功能,就像将扩展注册为服务一样简单:
// config/services.yaml
services:
…
Twig\Extensions\IntlExtension: ~