2017-10-14 38 views
-2

nochso/html-compress-twig extensionを使用して、すべてのhtml、インラインCSS、jsを圧縮したいと思いますが、初めてTwigに新しい拡張子を登録して、次の行を追加する場所について少し混乱します。私のプロジェクトで:SymfonyでTwig Extensionを登録

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

私は小枝のドキュメントを読んでいたが、それらは同じ例を入れて、ちょうど次を追加すると、それは非常に私を助けてくれませんでした:

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: 

私は唯一の拡張を有効にしたいです世界中で{% htmlcompress %}{% endhtmlcompress %}を使用できるあなたがタグ付けされたサービスとして、このようにあなたの小枝の拡張子を登録することができます任意の小枝テンプレート

+1

あなたが良く従いますsymfony固有のドキュメントはこちら:http://symfony.com/doc/current/templating/twig_extension.html –

+0

正しいsymfonyのバージョンを選択することを忘れないでください。 –

答えて

2

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

あなたの返信ありがとう!それは何の問題もなく、感謝して再び働いた! –

1

通常のサービスとして追加し、小枝拡張を有効にするには... http://symfony.com/doc/current/reference/dic_tags.html#twig-extension

+0

Thaksを返信してください!この場合、バンドルをインストールした後、どうすればservices.ymlで有効にする必要がありますか?私はこれを試しました: 'app.compress: クラス:\ nochso \ HtmlCompressTwig \ Extension タグ:[twig.extension]'しかし、私は別の名前のために "twig.extension"を変更する必要があると思います... –

+0

'twig.extension'を別の名前に変更しないでください。それは名前ではありません。これはsymfonyにあなたのサービスがTwig拡張機能であることを伝えるフラグです。そのドキュメンテーションのように、「真」を引数として渡そうとしましたか? Twigのデバッグ設定によって圧縮が無効になります。これは開発を容易にするためですが、いつでも上書きすることができます。 この拡張のコンストラクタは、ブーリアンパラメータ$ forceCompressionをとります。 trueの場合、これはTwigのデバッグ設定に関係なく圧縮を強制します。省略時には、デフォルトでfalseになります。 –

+0

私は両方のオプションを試してみました。 "twig.extension"は、 "A"タグ "entryはサービス" app.compress "の配列でなければなりません。私も議論として真実を伝えようとしましたが、まず正しい方法で構成する必要があります –

関連する問題