2017-10-14 58 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作为参数传递,但我需要首先以正确的方式配置它 –

相关问题