【问题标题】:How can I use Smarty templates with A/B testing?如何在 A/B 测试中使用 Smarty 模板?
【发布时间】:2016-09-27 22:03:48
【问题描述】:

我正在尝试对我们的代码进行一些修改,以便更轻松地进行 A/B 测试。

我想知道我是否可以通过某种方式

  1. 将我的常规代码放在 /templates 目录下
  2. 在 /templates/_abtests/ 下有任何 a/b 代码,但也遵循与常规代码相同的层次结构。例如... ab 测试可以覆盖像“/templates/foo.tpl”这样的文件,并改用“/templates/_abtests/testfoo/foo.tpl”

我尝试在测试时更改模板目录。在调用 display 方法之前,我会检查用户是否在测试中,如果是,则相应地设置 template_dir。我会先分配一个带有“ab”目录的数组,然后是默认值。我正在使用 Smarty2。

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

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

【问题讨论】:

  • 问题是 smarty 缓存了你的模板?
  • 是的。我相信是的。

标签: testing smarty


【解决方案1】:

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

我之前在移动/桌面上尝试过这个,但忘记了这个解决方案。

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

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2018-06-19
    • 2021-09-11
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多