2013-10-08 20 views

回答

1

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

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

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

相关问题