首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何安装Twig的Intl扩展

如何安装Twig的Intl扩展
EN

Stack Overflow用户
提问于 2014-09-20 20:39:47
回答 2查看 28.8K关注 0票数 28

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-09 20:52:30

安装PHP intl扩展

首先,您将需要PHP intl extension,因为Twig扩展就是构建在它之上的。如果未启用PHP Intl扩展,则Twig intl扩展将抛出异常。Installation instructions可以在官方的PHP文档中找到。

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

代码语言:javascript
复制
sudo apt install php-intl

在Windows机上,您可能需要在php.ini中取消注释以下行:

代码语言:javascript
复制
extension=php_intl.dll

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

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

安装Twig扩展

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

代码语言:javascript
复制
composer require twig/extensions

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

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

将扩展添加到Twig

如果您直接使用Twig (即不在Symfony项目中),请手动将扩展添加到Twig环境中:

代码语言:javascript
复制
<?php

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

$twig = new Environment($loader);
$twig->addExtension(new IntlExtension());

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

如果您正在使用Symfony应用程序,则可以通过在config/services.yml中创建服务并将其标记为Twig扩展来将扩展添加到Twig

代码语言:javascript
复制
services:
    twig.extension.intl:
        class: Twig\Extensions\IntlExtension
        tags:
            - { name: twig.extension }

设置默认区域设置

代码语言:javascript
复制
<?php

Locale::setDefault('nl-NL');

在Symfony中设置默认区域设置

config/framework.yaml中,取消注释default_locale设置:

代码语言:javascript
复制
framework:
    default_locale: en
票数 67
EN

Stack Overflow用户

发布于 2020-03-13 21:43:14

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

代码语言:javascript
复制
// config/services.yaml

services:
    …

    Twig\Extensions\IntlExtension: ~ 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25948853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档