2013-02-13 51 views
1

我將爲每個域具有不同主題的項目(相同的應用程序將服務於多個域)。在Symfony2中更改模板/視圖位置

  1. 我需要改變的模板位置完全不在應用程序文件夾,可能其他卷
  2. 我需要使它與多個主題多個領域的工作 - 我猜孤單緩存問題

S如何用Symfony2和樹枝做這個東西?

編輯:我會試着問:我需要重寫什麼或在哪裏獲得自定義邏輯來定位symfony用於呈現頁面的特定模板。

+0

是否正確我所需要做的是重寫TemplateReference?但我不知道他們是如何在這裏做到的:https://github.com/liip/LiipThemeBundle – 2013-02-13 17:09:47

回答

0

我不能說你的問題的第一點是不好的做法(並且不知道即使有可能,但我會說是)。

但是,我會做的是某種「經理」,將負責根據您自己的邏輯選擇何種模板呈現。行爲與觀點之間的某種「中間水平」。

您可以將它創建爲服務並在任何地方使用,而無需每次都實例化它。
它可以讀取配置文件,甚至可以使用類內部配置(但較少彈性)。

算法可能是這樣的:

  • 考慮到您的要求
  • 「吃」數據和「吐出」正確的模板(名稱)
  • 通行證模板(名稱)到你鑑於
  • 擴展(dinamically)通過你的經理給出的模版

請不要問我的一些代碼,因爲它可以重新在幾百行:))

+0

是的,我相信它,它必須至少有100行代碼和幾個類實際上 - 緩存和模板位置。我只是問什麼類或什麼服務,我如何告訴Symfony使用我的模板定位系統,以及我需要照顧什麼。 – 2013-02-13 15:38:04

+0

@ZdeněkTopič:您必須根據自己的規則編寫自己的服務,並將響應(模板呈現)傳遞給您的視圖,以便簡單地呈現它 – DonCallisto 2013-02-13 15:43:16

+0

必須有其他方式,例如重寫某個模板定位器。我不相信只有解決方案是在每個動作中傳遞該特定模板以在控制器中呈現。 – 2013-02-13 15:46:54