私はかなり長い間 CakePHP を使用しており、mvc-principle についてかなりよく理解していると思います。しかし、今日、mvc に固執しながら解決する方法がわからない小さな問題に遭遇しました。
私のデータベースには、ビューのバリエーションの表があります。これは、A/B テストとよく似ています。ビューが表示されたら、データベースに保存されているバリエーションの 1 つを選択する必要があります。
したがって、私の見解では、次のようなものが必要です。
<?php
$variant = $this->Helper->getVariant();
switch($variant) {
case 'a':
echo "some link or content";
break;
case 'b':
echo "some other content";
break;
}
?>
しかし、getVariant() にアクセスすることにより、選択したバリアントをデータベースで更新する必要があり、ビューの数を更新する必要があります。ビューが実際に必要とする場合にのみ実行する必要があるため、コントローラーに getVariant() を使用したくないのはこのためです。ロジック(コントローラ)と表示(ビュー)が分かれているため、コントローラで getVariant() が必要かどうか判断できません。何をすべきか?