如何在A / B测试中使用Smarty模板?

时间:2016-09-27 22:03:49

标签: testing smarty

我正在尝试在代码中进行一些修改,以便更容易进行A / B测试。

我想知道我能否以某种方式

  1. 将我的常规代码放在/ templates目录下
  2. 在/ templates / _abtests /下有任何a / b代码,但也遵循与常规代码相同的层次结构。例如...... ab测试可以覆盖像'/templates/foo.tpl'这样的文件,而是使用'/templates/_abtests/testfoo/foo.tpl'
  3. 我在测试时尝试更改模板目录。在调用显示方法之前,我会检查用户是否在测试中,如果是,则相应地设置template_dir。我首先分配一个带有'ab'目录的数组,然后是默认目录。我正在使用Smarty2。

    这个问题是它缓存了第一个实例,并将其用作基线和ab测试用例的模板。即:我有一个参数来强迫我进入测试桶,但模板是相同的。

    关于如何实现这一目标的想法?目标是不必在模板中添加一堆模板钩子(if / else)。并通过简单的模板/文件包括实现这一点。

1 个答案:

答案 0 :(得分:0)

我相信我的问题的解决方案可能是将模板放入文件夹。即:/ templates / base /,/ templates / test_foo /等。然后在我的template_dir设置中,根据我们所处的测试设置数组。

之前我曾尝试使用移动/桌面设备,并忘记了这个解决方案。

我可以扩展smarty_template类并覆盖display方法来更改template_dir。首先添加测试目录。