如何安装 Twig 的国际扩展安装 PHP 国际扩展安装树枝扩展将扩展名添加到 Twig设置默认区域设置

2022-08-30 15:34:22

Intl 扩展是 Twig 的扩展,它添加了 和 过滤器。如何安装和设置扩展,以便在 Twig 模板中使用这些筛选器?localizeddatelocalizednumberlocalizedcurrency


答案 1

安装 PHP 国际扩展

首先,您将需要PHP intl扩展,因为Twig扩展是在此基础上构建的。如果未启用 PHP 国际扩展,Twig 国际扩展将引发异常。安装说明可以在官方 PHP 文档中找到。

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

sudo apt install php-intl

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

extension=php_intl.dll

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

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

安装树枝扩展

接下来,您将需要 Twig Extensions 包(其中包含 International 扩展等),该软件包可以使用 Composer 进行安装。在命令行中运行以下命令:

composer require twig/extensions

这会将依赖项添加到您的并下载它。composer.json

注意:和过滤器是在1.2.0版本中引入的,因此如果要使用它们,您至少需要该版本。localizednumberlocalizedcurrency

将扩展名添加到 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.yamldefault_locale

framework:
    default_locale: en

答案 2

在 Symfony 3/4/5 中,启用自动配置功能后,只需将扩展注册为服务即可:

// config/services.yaml

services:
    …

    Twig\Extensions\IntlExtension: ~ 

推荐