2017-10-14 4 views
-2

Ich möchte nochso/html-compress-twig extension verwenden, um alle HTML, Inline-CSS und js zu komprimieren.Aber es ist das erste Mal, dass ich eine neue Erweiterung auf Twig registrieren und ich bin etwas verwirrt darüber, wo ich die folgenden Zeilen hinzufügen sollte in meinem Projekt:Registrieren Twig Extension in Symfony

$twig = new Twig_Environment($loader); 
$twig->addExtension(new \nochso\HtmlCompressTwig\Extension()); 

ich den Zweig in der Dokumentation las, aber es hat mir geholfen, nicht viel, wie sie das gleiche Beispiel setzen und fügen sie einfach die folgenden:

Twig does not care where you save your extension on the filesystem, as all extensions must be registered explicitly to be available in your templates. 

You can register an extension by using the addExtension() method on your main Environment object: 

ich die Erweiterung nur aktivieren möchten global und in der Lage sein, {% htmlcompress %}{% endhtmlcompress %} in verwenden jeder Zweig Vorlage

+1

Sie besser folgen die Symfony-spezifische Dokumentation hier: http://symfony.com/doc/current/templating/twig_extension.html –

+0

Vergessen Sie nicht, die richtige Symfony-Version zu wählen, die Sie auch verwenden –

Antwort

2

Sie können Ihre Zweig Erweiterung als getaggten Dienst auf diese Weise registrieren:

services: 
    htmlcompress: 
     class: '\nochso\HtmlCompressTwig\Extension' 
     tags: 
      - { name: twig.extension } 
+0

Danke für Ihre Antwort! Es hat ohne Probleme funktioniert, nochmals vielen Dank! –

1

ein Zweig Erweiterung zu aktivieren, fügen Sie sie als regelmäßige ... http://symfony.com/doc/current/reference/dic_tags.html#twig-extension

+0

Thaks für Ihre Antwort! In diesem Fall, nach der Installation des Pakets, wie sollte ich es in services.yml aktivieren? Ich versuchte das: 'app.compress: Klasse: \ nochso \ HtmlCompressTwig \ Extension Tags: [zweig.extension]' Aber ich denke, dass ich "twig.extension" für einen anderen Namen ändern sollte ... –

+0

nein, sollten Sie Ändern Sie 'twig.extension' nicht für einen anderen Namen. Das ist kein Name. Das ist eine Markierung, die Symfony mitteilt, dass es sich bei Ihrem Dienst um eine Zweig-Erweiterung handelt. Haben Sie versucht, "wahr" als Argument gemäß der Dokumentation zu übergeben? Die Komprimierung wird durch die Debug-Einstellung von Twig deaktiviert. Dies erleichtert die Entwicklung, kann jedoch immer überschrieben werden. Der Konstruktor dieser Erweiterung benötigt einen booleschen Parameter $ forceCompression. Wenn dies zutrifft, wird die Komprimierung unabhängig von Twigs Debug-Einstellung erzwungen. Es ist standardmäßig falsch, wenn es weggelassen wird. –

+0

Ich habe beide Optionen ausprobiert, und "twig.extension" gibt eine Exception aus, die mir sagt, dass ein "A" -Tags-Eintrag ein Array für den Dienst "app.compress" sein muss. Ich versuchte auch, als Argument wahr zu gehen, aber ich muss es in der richtigen Weise zuerst konfigurieren –

Verwandte Themen