2016-09-27 65 views
0

我正在嘗試在我們的代碼中進行一些修改,以便於進行A/B測試。如何在A/B測試中使用Smarty模板?

我想知道如果我能以某種方式

  1. 有/模板目錄
  2. 下有我的正常代碼的任何A/B代碼下/模板/ _abtests /,但也遵循相同的層次結構作爲常規代碼。例如...的AB測試可以覆蓋像「/templates/foo.tpl」文件,並改用「/templates/_abtests/testfoo/foo.tpl」

我試圖改變模板目錄時在測試中。在調用顯示方法之前,我會檢查一個用戶是否在測試中,如果是,則相應地設置template_dir。我會首先爲'ab'目錄分配一個數組,然後是默認值。我正在使用Smarty2。

問題在於它緩存了第一個實例,並將其用作基準和ab測試用例的模板。即:我有一個參數迫使我進入測試桶,但模板是相同的。

想法如何實現這一目標?目標是不必在模板中添加一堆模板鉤子(if/else)。並通過簡單的模板/文件包含來實現。

+0

的問題是,智者緩存你的模板? –

+0

是的,我相信是這樣。 – Sam

回答

0

我相信我的問題的解決方案可能是將模板放入文件夾。即:/ templates/base /,/ templates/test_foo /等等。「然後在我的template_dir設置中,根據我們在進行什麼測試來設置陣列。

我之前曾嘗試過使用移動/和忘了這個解決方案。

我可以擴展smarty_template類並覆蓋顯示方法來改變template_dir模板。首先將測試目錄。