バックグラウンド:
MVC アーキテクチャでコントローラーを最適に使用する方法を正確に理解するのに苦労しています。
この URL スキームに従う webapp があります。
/
- メインインデックス/static-page
- 静的ページ/categories
- 特定のカテゴリのインデックス/categories/users
- 特定のカテゴリのユーザーのインデックス/categories/users/id#/user-name
- 特定のカテゴリの特定のユーザー/categories/event-type-A
特定のカテゴリに関連するイベントのインデックス/categories/event-type-A/id#/event-name
- 特定のカテゴリの特定のイベント/categories/event-type-B
特定のカテゴリに関連するイベントのインデックス/categories/event-type-B/id#/event-name
- 特定のカテゴリの特定のイベント
*注意: この URL 構造は、不正な URL (間違った URL event-name
) が存在する場合に自動的に修正されるという点で、StackOverflow の構造に似ていid#
ます。
質問:
、categories
、users
およびevent-type
はそれぞれ独自の機能 (つまり、ユーザーの編集、イベントの操作など) を持っているため、それらはすべて独自のコントローラーです (そうですか?)。とは非常に似ているためevent-type-A
、クラスevent-type-B
から拡張された共通の機能を共有しています。events
OOP および MVC 設計の「標準的な慣行」に従うようにコントローラーを編成することをどのように提案しますか?
現在Pages
、静的ページ用のクラスがあり、categories
クラスを呼び出すusers
クラスevent-type-A
とevent-type-B
、(上記のように) クラスの拡張であるevents
クラスがあることを期待していました...続行。
単純な/疑似コードの例は大歓迎です。
追加情報:
参考までに、私は PHP/MySQL を使用しています。独自のフレームワークを作成して MVC を学ぼうとしてきましたが、最近 CodeIgniter に切り替えました。そうは言っても、CodeIgniter 固有のソリューションまたは一般的な MVC ソリューションで十分です。
アップデート:
Ako が以下で述べたように、1events
つのコントローラーに組み合わせて、そこから 2 つtype
の s を生成することは間違いありません。各コントローラーを実際にどのように設定するか (どのメソッドを定義するかなど)、それらを適切に連携させるために混乱しています。