Kohana の HMVC モデルについて質問があります。スケーリングと簡単な API 作成のために、同じ原則 (MVC) 内のコンポーネントとしてものを分離するというアイデアが本当に気に入っています。
知識の喪失など、私が経験しているいくつかの欠点がありますが。
たとえば、ニュースとカテゴリというコンポーネントを持つことができます。その上に、完全なリクエストを委任し、これらのコンポーネントを介してサイト テンプレートのすべての html/データを収集するサイト コントローラーがあります。
Site controller
/ \
/ \
categories news
サイドバーにすべてのカテゴリが必要な場合は、/categories/list を呼び出すことができます。ニュース アイテムが必要な場合は、/news/ID を呼び出すことができます。どちらもhtmlを返します。
ニュース記事を表示することを主なタスクとする newsreadon サイト コントローラーがある場合、このコントローラーはサイドバーのすべてのカテゴリを取得します。次に、ニュース項目を取得します。
Newsreadon
/ \
/ \
categories/list (html) news/<id> (html)
サイト テンプレート内のすべての要素を表示するときに、html タイトル タグのニュースの「タイトル」を知りたいのですが、html を返すのでわかりません。
複数の解決策があるように感じます:
- タイトルをいくつかのレジストリに保存します (ただし、コンポーネントを他のサーバーにスケーリングして HTTP を使用すると、これは失われます)。したがって、スケーリングを考慮すると、適切な選択はありません。
- 'title' フィールドと 'html' フィールドを含む json を返します。
- タイトルの h2 のような html の一部を読み上げます
解決策 2 は、最も厄介ではないように思われ、ステートレス通信をそのまま維持します。
これをどのようにエレガントな方法で解決するのか、本当に疑問に思っていますか? 「その」ソリューションがありませんか?
編集: kohana による HMVC を理解するための興味深い読み物: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/