バックグラウンド:
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 を生成することは間違いありません。各コントローラーを実際にどのように設定するか (どのメソッドを定義するかなど)、それらを適切に連携させるために混乱しています。