【发布时间】:2016-09-27 22:03:48
【问题描述】:
我正在尝试对我们的代码进行一些修改,以便更轻松地进行 A/B 测试。
我想知道我是否可以通过某种方式
- 将我的常规代码放在 /templates 目录下
- 在 /templates/_abtests/ 下有任何 a/b 代码,但也遵循与常规代码相同的层次结构。例如... ab 测试可以覆盖像“/templates/foo.tpl”这样的文件,并改用“/templates/_abtests/testfoo/foo.tpl”
我尝试在测试时更改模板目录。在调用 display 方法之前,我会检查用户是否在测试中,如果是,则相应地设置 template_dir。我会先分配一个带有“ab”目录的数组,然后是默认值。我正在使用 Smarty2。
问题在于它缓存了第一个实例,并将其用作基线和 ab 测试用例的模板。即:我有一个参数强制我进入测试桶,但模板是一样的。
对如何实现这一点的想法?目标是不必在模板中添加一堆模板挂钩(if/else)。并通过简单的模板/文件包含来实现这一点。
【问题讨论】:
-
问题是 smarty 缓存了你的模板?
-
是的。我相信是的。