Twig:替换字符串的每个实例

时间:2015-07-05 12:50:21

标签: replace twig

在Twig中是否有办法在整个系统中用另一个字符串B替换已定义的字符串A?这意味着每当我输出任何内容(变量,静态内容,翻译......)时,都会有一个过程检查A的内容并用B替换它。

是否有某种倾听者或事件我可以参与其中?

我知道Twig中有replace个过滤器,但我不想在每个实例中定义它们,但请确保它将在任何地方被替换。

1 个答案:

答案 0 :(得分:1)

第一个解决方案是定义一个自定义的节点访问者"对于Twig。 Twig_NodeVisitor_Optimizer是如何更改模板内容而无需添加任何特殊功能,过滤器或标记的示例。

但是,定义一个"节点访问者"非常复杂,我建议您以另一种方式解决这个问题:

  • 如果您在Symfony中使用Twig,请使用kernel.response event获取响应,并在将其发送给用户之前对其内容应用简单的str_replace()preg_replace()函数。
  • 如果您单独使用Twig,请将相同的技术应用于render()方法生成的输出。