2016-09-27 4 views
0

簡単なA/Bテストを可能にするために、コードに少し変更を加えようとしています。私は何とかA/BテストでSmartyテンプレートを使用するにはどうすればよいですか?

  1. は、/ templatesディレクトリの下に私の定期的なコード
  2. を持つことができるかどうかを知りたいのですが

    は/テンプレート/ _abtests /下の任意のa/bのコードを持っているだけでなく、同じに従ってください規則的なコードとしての階層。例えば... ABテストは、私は時にテンプレートディレクトリを変更しようとした「/templates/foo.tpl」のようなファイルを上書きし、代わりに「/templates/_abtests/testfoo/foo.tpl」

を使用することができますテストで。表示メソッドを呼び出す直前に、ユーザーがテストに参加しているかどうかを確認し、そうであればそれに応じてtemplate_dirを設定します。私は最初に 'ab'ディレクトリ、次にデフォルトの配列を割り当てます。私はSmarty2を使用しています。

この問題は、最初のインスタンスをキャッシュし、ベースラインとabテストのテンプレートとしてテンプレートを使用することです。すなわち:私にテストバケットに私を強制するパラメータがありますが、テンプレートは同じです。

これを達成する方法についての考えですか?テンプレートのフック(if/else)の束を追加する必要はありません。これを単純なテンプレート/ファイルインクルードで実現します。

+0

問題はSmartyのは、あなたのテンプレートをキャッシュすることです? –

+0

はい。私はそう信じています。 – Sam

答えて

0

私の問題に対する解決策は、テンプレートをフォルダに入れることだと思います。/template/base /、/ templates/test_foo /など。 "テンプレートのディレクトリ設定では、どのテストに基づいて配列を設定しますか?

私はモバイル/この溶液を忘れ。

私はsmarty_templateクラスを拡張し、template_dirのを変更するには、表示メソッドをオーバーライドすることができます。最初のテストのディレクトリを追加する。

関連する問題