如何安装Twig的Intl扩展

jul*_*ong 25 php intl twig twig-extension

国际扩展是枝条的延伸,增加了的localizeddate,localizednumberlocalizedcurrency过滤器.如何安装和设置扩展程序,以便在Twig模板中使用这些过滤器?

Nic*_*tel 59

安装PHP intl扩展

首先,您需要PHP intl扩展,因为Twig扩展是建立在它之上的.如果未启用PHP intl扩展,Twig Intl扩展将抛出异常.安装说明可以在官方PHP文档中找到.

在Ubuntu/Debian机器上,这就像运行以下命令一样简单:

sudo apt install php-intl
Run Code Online (Sandbox Code Playgroud)

在Windows机器上,您可能必须取消注释php.ini中的以下行:

extension=php_intl.dll
Run Code Online (Sandbox Code Playgroud)

对于CentOS或其他体系结构,请按照此处的说明进行操作.请注意,CentOS需要安装PECL和GCC C++编译器:yum install php-pearyum install gcc-c++.

将扩展名添加到php.ini后,重新启动Web服务器.

安装Twig Extensions

接下来,您将需要Twig Extensions包(其中包含Intl扩展名),可以使用Composer进行安装.在命令行中运行此命令:

composer require twig/extensions
Run Code Online (Sandbox Code Playgroud)

这将为您添加依赖项composer.json并下载它.

注意:localizednumberlocalizedcurrency1.2版本中引入了过滤器,因此如果要使用它们,至少需要该版本.

将扩展名添加到Twig

如果您在一个简单的PHP项目中使用Twig,则可以使用该config/services.yml方法添加扩展名.

<?php

use Twig\Environment;
use Twig\Extensions\IntlExtension;

$twig = new Environment($loader);
$twig->addExtension(new IntlExtension());
Run Code Online (Sandbox Code Playgroud)

将扩展添加到Twig(在Symfony中)

如果您使用的是Symfony应用程序,则可以使用以下服务配置将扩展名添加到Twig config/framework.yaml:

services:
    twig.extension.intl:
        class: Twig\Extensions\IntlExtension
        tags:
            - { name: twig.extension }
Run Code Online (Sandbox Code Playgroud)

设置区域设置

<?php

Locale::setDefault('nl-NL');
Run Code Online (Sandbox Code Playgroud)

在Symfony中设置区域设置

编辑default_locale:

framework:
    default_locale: en
Run Code Online (Sandbox Code Playgroud)