私は CodeIgniter を使用していますが、この質問はどの MVC フレームワークにも当てはまります。5 つの異なる Web サイトを管理できるカスタム CMS を使用しています。ユーザーはログインしてこれらのサイトを切り替えます。サイトの各領域にコンテンツを追加できます。入力できるCMSやデータは各サイト共通です。
公開されているサイトはすべて、他のすべてのサイトと同じデータを含んでいるにもかかわらず、まったく異なって見え、異なるブランドを表しています。
では、これらのビューをどのように実装しますか? 私が見るべきデザインパターンはありますか?
私が今これを行うと考えることができる唯一の方法は、各コントローラーの内部に switch ステートメントを配置することです > 各 Web サイトの異なるビューを取得するアクションですが、これを行うにはもっと賢い方法が必要です。次のような大量のコードの生成を回避したいと考えています。
class Home extends Controller {
public function getPage()
{
$website = $this->session->userdata( "site_id" );
switch( $website )
{
case "1":
// load view one
break;
case "2":
// load view 2
break;
// etc etc
}
}
}