在运行时获取所有可用的twig块名称

时间:2013-10-08 20:06:56

标签: symfony twig

可以在块内获取所有可用的树枝块名称吗?如何?

1 个答案:

答案 0 :(得分:1)

你可以做到。任何编程语言或脚本语言工作流程,lexing和编译的工作流程都有两个主要部分。在编译部分,Twig构建令牌树,然后将其编译为HTML(Twig internals)。

所有这些都在Twig_Environment类中调用,它在Symfony中用作服务。所以你可以做的是覆盖Twig_Environment tokenize方法并获得你需要的所有标记。然后,您可以使用自己修改的扩展程序override the original service

这是您能够返回所有令牌名称的方式。您可以根据自己的需要进行调整。如果您需要令牌树本身,也可以覆盖render和/或parse方法,或者您可以编写自己更复杂的附加功能,您可以从模板本身调用它们。可能性是无止境。只是介意将代码与原始的Twig实现分开(使用覆盖),以便更容易更新。