Как установить расширение Intl для Twig

Intl расширение это расширение для Twig, которое добавляет localizeddate, localizednumber а также localizedcurrency фильтры. Как я могу установить и настроить расширение, чтобы использовать эти фильтры в своих шаблонах Twig?

23

Решение

Прежде всего, вам понадобится Расширение intl PHP, поскольку расширение Twig построено поверх этого. Расширение Twig Intl вызовет исключение, если расширение intl PHP не включено. Инструкция по установке можно найти в официальной документации PHP.

На компьютерах с Ubuntu / Debian это так же просто, как выполнить следующую команду:

sudo apt-get install php5-intl

На компьютерах с Windows вам, вероятно, придется раскомментировать следующую строку в php.ini:

extension=php_intl.dll

Для CentOS или других архитектур следуйте инструкциям Вот. Обратите внимание, что CentOS требует, чтобы PECL и компилятор GCC C ++ были установлены: yum install php-pear а также yum install gcc-c++,

Как только расширение будет добавлено в php.ini, перезапустите веб-сервер.

Затем вам понадобится пакет Twig Extensions (который среди прочего содержит расширение Intl), который можно установить с помощью Composer. Запустите эту команду в командной строке:

composer require twig/extensions ^1.2

Это добавит зависимость к вашему composer.json и скачать его.

Обратите внимание localizednumber а также localizedcurrency Фильтры были введены в версии 1.2.0, поэтому вам нужна как минимум эта версия, если вы хотите их использовать.

Если вы используете Twig в простом PHP-проекте, вы можете добавить расширение, используя addExtension() метод.

$twig = new Twig_Environment($loader);
$twig->addExtension(new Twig_Extensions_Extension_Intl());

Добавление расширения в Twig (в Symfony)

Если вы используете приложение Symfony, вы можете добавить расширение к Twig, используя конфигурацию сервиса в app/config/services.yml:

services:
twig.extension.intl:
class: Twig_Extensions_Extension_Intl
tags:
- { name: twig.extension }
Locale::setDefault('nl-NL');

Настройка локали в Symfony

редактировать app/config/config.yml:

parameters:
locale: nl
54

Другие решения

После установки расширения, если вы обнаружите следующую ошибку:
Попытка загрузить класс «IntlTimeZone» из глобального пространства имен. Вы забыли заявление об использовании?
Просто отредактируйте строку 54 в файле:

    vendor/twig/lib/Twig/Extensions/Extension/Intl.php

и заменить его на:

if (PHP_VERSION_ID < 50500 || !class_exists('IntlTimeZone')) {

Это сработало для меня ..

0

По вопросам рекламы [email protected]