如何在不更改任何模板的情况下过滤所有树枝输出?

时间:2014-09-23 20:58:24

标签: laravel twig

在Laravel中,我想在不更改任何模板的情况下全局过滤所有Twig模板的输出。手头的情况是我希望将我的应用程序生成的所有html中的所有http://和https://转换为协议相对的//.

有没有人对如何做到这一点有任何想法?

我能想到的最简单,最脏的方法就是twig渲染html。只做一个正则表达式。

我盯着http://twig.sensiolabs.org/doc/advanced.html,但我不确定我的回答是否真的在那里。我还尝试跟踪原始过滤器的工作原理,因为我认为发生了一个转换,原始实际抑制,这是(如果准确的话)在我想做的事情的球场上。我到了某一点,决定问别人。

由于

1 个答案:

答案 0 :(得分:0)

Twig确实不是进行此类转换的地方,因为它将应用于您的应用程序发送的所有输出。我建议您查看Laravel提供的Event System。您应该能够捕获内核的响应事件,然后在监听器中过滤输出。我在Symfony中做了同样的事情来实现类似的功能。

如果您的路径是由树枝过滤器生成或通过树枝过滤器,您可以考虑为您的用例扩展这些特定的过滤器,但是,这对我来说似乎非常脆弱,因为如果有人硬编码了一个路径,那么会发生什么?模板而不是使用变量?