2017-10-14 76 views
-2

我想使用nochso/html-compress-twig extension來壓縮所有的html,內聯css和js.但是這是我第一次在Twig上註冊一個新的擴展,並且我有點困惑應該在哪裏添加以下行在我的項目:在Symfony中註冊Twig擴展

$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: class:\ nochso \ HtmlCompressTwig \ Extension 標籤:[twig.extension]'但我想我應該改變「twig.extension」換一個名字...... –

+0

不,你應該不要將'twig.extension'換成另一個名字。這不是一個名字。這是一個標誌,告訴symfony您的服務是枝條延伸。根據文件,你是否試圖通過「真實」作爲論據? Twig的調試設置禁用了壓縮。這是爲了使開發更容易,但是你總是可以覆蓋它。 此擴展的構造函數接受一個布爾參數$ forceCompression。如果爲true,則無論Twig的調試設置如何,都將強制進行壓縮。省略時默認爲false。 –

+0

我嘗試了兩種選擇,讓「twig.extension」引發了一個異常,告訴我「A」標籤「條目必須是服務數組」app.compress「。我也嘗試將true作爲參數傳遞,但我需要首先以正確的方式配置它 –