0

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

4

1 回答 1

1

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

所有这些都在 Twig_Environment 类中调用,该类在 Symfony 中用作服务。因此,您可以做的是覆盖该Twig_Environment tokenize方法并在那里获取您需要的所有令牌。然后,您可以使用自己修改的扩展程序覆盖原始服务。

这就是您能够返回所有令牌名称的方式。您可以调整它以满足您的需求。如果您需要令牌树本身,您还可以覆盖render和/或parse方法,或者您可以编写自己的更复杂的附加功能,您可以从模板本身调用这些功能。可能性是无止境。请注意将您的代码与原始 Twig 实现分开(使用覆盖),以便您可以更轻松地更新。

于 2013-10-10T10:12:09.517 回答