Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
533 views
in Technique[技术] by (71.8m points)

php - How to install the Intl extension for Twig

The Intl extension is an extension for Twig that adds the localizeddate, localizednumber and localizedcurrency filters. How can I install and set up the extension so that I can use those filters in my Twig templates?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Install the PHP intl extension

First of all, you will need the PHP intl extension, as the Twig extension is built on top of that. The Twig Intl extension will throw an Exception if the PHP intl extension is not enabled. Installation instructions can be found in the official PHP documentation.

On Ubuntu/Debian machines, this is as easy as running the following command:

sudo apt install php-intl

On Windows machines, you probably have to uncomment the following line in php.ini:

extension=php_intl.dll

For CentOS, or other architectures, follow the instructions here. Note that CentOS requires both PECL and the GCC C++ compiler to be installed: yum install php-pear and yum install gcc-c++.

Once the extension is added to php.ini, then restart the web server.

Install the Twig Extensions

Next, you will need the Twig Extensions package (that contains the Intl extension, among others), which can be installed using Composer. Run this command in the command line:

composer require twig/extensions

This will add the dependency to your composer.json and download it.

Note: the localizednumber and localizedcurrency filters were introduced in version 1.2.0, so you need at least that version if you want to use them.

Adding the extension to Twig

If you are using Twig directly (i.e. not in a Symfony project), add the extension to the Twig environment manually:

<?php

use TwigEnvironment;
use TwigExtensionsIntlExtension;

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

Adding the extension to Twig (in Symfony)

If you are using a Symfony application, you can add the extension to Twig by creating a service and tagging it as a Twig extension in config/services.yml:

services:
    twig.extension.intl:
        class: TwigExtensionsIntlExtension
        tags:
            - { name: twig.extension }

Setting the default locale

<?php

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

Setting the default locale in Symfony

In config/framework.yaml, uncomment the default_locale setting:

framework:
    default_locale: en

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...