2013-06-13 56 views
1

這更是一個討論的問題:嵌入式控制器VS樹枝延伸

鑑於你在你的包的組成部分,它由一個服務,也許一個模型,模板和你想給一個簡單的方法把它列入在你的主要模板中。

你可以提供內部使用一個助手來解析,如模板樹枝延伸:

{{ acme_render_component({foo: 'bar'}) }} 

,或者你將決定讓主模板使用嵌入式控制器,如:

{{ render(controller('AcmeBundle:CoolComponent:render', { 'foo': bar })) }} 

我猜這些案例的行爲不同:
使用樹枝擴展,您可能首先使用服務填充模型並在模板中再次獲取它。
使用控制器,您可能會按需執行服務。

有什麼區別,優點或警告?
什麼時候應該提供這一個或另一個,或兩者兼而有之?

回答

1

我想一個使用自定義Twig擴展的原因是性能。在Twig模板中調用「render」是一個全新的請求,貫穿整個Symfony生命週期。

+0

如果你不打算在控制器中使用渲染方法,你將如何加載包含枝條擴展的枝條文件? – Sekai