2013-10-08 24 views

回答

1

你可以做到。任何編程語言或腳本語言工作流程的工作流程中有兩個主要部分,即lexing和編譯。在編譯部分,Twig構建令牌樹,然後將其編譯爲HTML(Twig internals)。

所有這些都在Twig_Environment類中調用,它在Symfony中用作服務。所以你可以做的是重寫Twig_Environment tokenize方法並獲得你需要的所有令牌。然後您可以使用您自己的修改後的擴展名override the original service

這就是你將如何返回所有的標記名稱。您可以根據自己的需要進行調整。如果您需要令牌樹本身,您也可以覆蓋render和/或parse方法,或者您可以編寫您自己可以從模板本身調用的更復雜的附加功能。可能性是無止境。請注意讓代碼與原始的Twig實現分開(使用覆蓋),以便更輕鬆地進行更新。

相關問題