0

バックグラウンド:

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#ます。

質問:

categoriesusersおよびevent-typeはそれぞれ独自の機能 (つまり、ユーザーの編集、イベントの操作など) を持っているため、それらはすべて独自のコントローラーです (そうですか?)。とは非常に似ているためevent-type-A、クラスevent-type-Bから拡張された共通の機能を共有しています。events

OOP および MVC 設計の「標準的な慣行」に従うようにコントローラーを編成することをどのように提案しますか?

現在Pages、静的ページ用のクラスがあり、categoriesクラスを呼び出すusersクラスevent-type-Aevent-type-B、(上記のように) クラスの拡張であるeventsクラスがあることを期待していました...続行。

単純な/疑似コードの例は大歓迎です。

追加情報:

参考までに、私は PHP/MySQL を使用しています。独自のフレームワークを作成して MVC を学ぼうとしてきましたが、最近 CodeIgniter に切り替えました。そうは言っても、CodeIgniter 固有のソリューションまたは一般的な MVC ソリューションで十分です。

アップデート:

Ako が以下で述べたように、1eventsつのコントローラーに組み合わせて、そこから 2 つtypeの s を生成することは間違いありません。各コントローラーを実際にどのように設定するか (どのメソッドを定義するかなど)、それらを適切に連携させるために混乱しています。

4

2 に答える 2

1

この回答は満足のいく解決策を提供している ようです。

本質的に:

必要に応じて、 HMVCを使用して必要な MVC トライアドをロードします。

以前は聞いたことがありませんでしたがHMVC、明らかに、特定の MVC トライアドが呼び出されるタイミングを指定できるようになり、最終的に異なるコントローラーが呼び出されるタイミングを制御できるようになります。これにより、各セクション ( categorieseventstypesなど) が、呼び出し可能な独自のindexページを持つ独立したモジュールとして機能できるようになりますが、必要に応じてより複雑なデータを提供する機能も提供できます。

于 2012-05-09T04:11:57.703 に答える
0

と を に変更/categories/event-type-Aしてみてはどうでしょ/categories/event-type-B/categories/events/typeか。または(またはそのようなもの)typeの1つはどこにありますか?AB

于 2012-05-01T19:16:43.823 に答える