我想在我的Symfony2應用程序中從數據庫加載某些Twig模板,同時仍然保留使用本機加載程序在標準文件系統位置呈現模板的可能性。如何實現這一目標?如何在Symfony2環境中註冊另一個(自定義)Twig加載器?
據我所知,沒有可能向Twig環境註冊多個裝載機。我一直在想兩種方法(現在):
- Replace the default loader與自定義代理類。當模板使用標準的@ Bundle-notation引用時,代理會將請求傳遞給默認的加載器。在其他情況下,請求將傳遞給我的自定義(數據庫)加載程序;或
- 建立一個全新的Twig環境。這種方法將需要註冊自定義的樹枝擴展兩種環境,它不會允許來自不同來源的交叉參考模板(一些來自@Bundles,有的來自數據庫)
更新1:
似乎Twig支持Twig_Loader_Chain類,可以在我的第一個選項中使用。作爲第一種選擇,默認的加載器應該可以訪問並傳遞給鏈。
此問題已在Symfony 2.3中修復? – Dayson
我意識到這是一箇舊的線程,但添加上面的配置會停止顯示Web配置文件調試模板 - 在它的位置下面的字符串顯示在屏幕的底部:@ WebProfiler/Profiler/toolbar_js.html.twig如何我能解決這個問題嗎? – Tocacar