webentwicklung-frage-antwort-db.com.de

So installieren Sie die Intl-Erweiterung für Twig

Die Erweiterung Intl ist eine Erweiterung für Twig, die die Filter localizeddate, localizednumber und localizedcurrency hinzufügt. Wie kann ich die Erweiterung installieren und einrichten, damit ich diese Filter in meinen Twig-Vorlagen verwenden kann?

23
julestruong

Installieren Sie die Intl-Erweiterung PHP

Zunächst benötigen Sie die PHP intl-Erweiterung , da die Twig-Erweiterung darauf aufbaut. Die Twig Intl-Erweiterung löst eine Exception aus, wenn die Intl-Erweiterung PHP nicht aktiviert ist. Installationsanweisungen finden Sie in der offiziellen PHP Dokumentation.

Auf Ubuntu/Debian-Computern ist dies so einfach wie das Ausführen des folgenden Befehls:

Sudo apt-get install php5-intl

Auf Windows-Computern müssen Sie wahrscheinlich die folgende Zeile in php.ini auskommentieren:

extension=php_intl.dll

Befolgen Sie für CentOS oder andere Architekturen die Anweisungen hier . Beachten Sie, dass CentOS sowohl die Installation von PECL als auch des GCC C++ - Compilers erfordert: yum install php-pear und yum install gcc-c++.

Wenn die Erweiterung php.ini hinzugefügt wurde, starten Sie den Webserver neu.

Installieren Sie die Twig Extensions

Als Nächstes benötigen Sie das Twig Extensions-Paket (das unter anderem die Intl-Erweiterung enthält), das mit Composer installiert werden kann. Führen Sie diesen Befehl in der Befehlszeile aus:

composer require twig/extensions ^1.2

Dadurch wird die Abhängigkeit zu Ihrem composer.json hinzugefügt und heruntergeladen.

Hinweis: Die Filter localizednumber und localizedcurrency wurden in Version 1.2.0 eingeführt. Sie benötigen also mindestens diese Version, wenn Sie sie verwenden möchten.

Erweiterung zu Twig hinzufügen

Wenn Sie Twig in einem einfachen PHP - Projekt verwenden, können Sie die Erweiterung mithilfe der addExtension()-Methode hinzufügen.

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

Hinzufügen der Erweiterung zu Twig (in Symfony)

Wenn Sie eine Symfony-Anwendung verwenden, können Sie Twig mithilfe der Dienstkonfiguration in app/config/services.yml hinzufügen:

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

Gebietsschema einstellen

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

Festlegen des Gebietsschemas in Symfony

app/config/config.yml bearbeiten:

parameters:
    locale: nl
54
Nic Wortel

Wenn nach der Installation der Erweiterung der folgende Fehler gefunden wird: Es wurde versucht, die Klasse "IntlTimeZone" aus dem globalen Namespace zu laden. Haben Sie eine Anweisung "use" vergessen? Bearbeiten Sie einfach Zeile 54 in der Datei:

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

und ersetze es durch:

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

Es hat für mich funktioniert ..

0
Suhaib Ahmad