2016-09-27 5 views
0

Ich versuche, eine kleine Änderung in unserem Code zu bauen, um leichtere A/B-Tests zu ermöglichen.Wie kann ich Smarty-Vorlagen mit A/B-Tests verwenden?

Ich würde gerne wissen, ob ich irgendwie

  1. unter/templates Verzeichnis meiner regelmäßigen Code haben
  2. jede a/b-Code haben unter/templates/_abtests /, sondern auch die gleiche folgen Hierarchie als der reguläre Code. zum Beispiel ... eine kann ab Test eine Datei wie ‚/templates/foo.tpl‘, und verwenden Sie stattdessen ‚/templates/_abtests/testfoo/foo.tpl‘

Ich habe versucht, die Änderung der Vorlagenverzeichnis überschreiben, wenn in einem Test. Unmittelbar vor dem Aufruf der Anzeige-Methode würde ich überprüfen, ob ein Benutzer in einem Test ist, und wenn ja, richten Sie das Template_dir entsprechend ein. Ich würde ein Array zuerst mit dem 'ab' -Verzeichnis und dann dem Standard zuweisen. Ich benutze Smarty2.

Das Problem dabei ist, dass es die erste Instanz zwischenspeichert und diese als Vorlage für die Baseline und den Testfall verwendet. zB: Ich habe einen Parameter, der mich in einen Test-Bucket zwingt, aber die Vorlage ist dieselbe.

Gedanken darüber, wie dies zu erreichen ist? Ziel ist es, in den Templates keinen Haufen Template-Hooks (if/else) hinzufügen zu müssen. und erreichen dies durch einfache Vorlage/Datei enthält.

+0

Das Problem ist, dass smarty Template-Caches? –

+0

ja. ich glaube, so . – Sam

Antwort

0

Ich glaube, dass die Lösung für mein Problem sein könnte, Vorlagen in Ordner zu setzen. zB:/templates/base /,/templates/test_foo/usw. ". Dann setze ich in meiner template_dir Einstellung das Array basierend auf dem Test in dem wir uns befinden.

Ich hatte das schon mit Mobile/Desktop versucht, und vergessen über diese Lösung.

ich kann die smarty_template Klasse erweitern und die Anzeigemethode überschreiben, um die template_dir zu ändern. Hinzufügen des Testverzeichnis zuerst.