2

私は最近、独自の PHP MVC フレームワークをプログラミングする方法に関するチュートリアルをいくつか見てきました。いくつかの質問やコメントを避けるために: 私はそれを生産的な環境で使用したくありません.MVC で何が起こっているのかをいじって理解するのが好きです.

これまでのところ、単一のページを持つことができます。http://domain/news/show/3は、ID 3 のデータベースからのニュース レコードを表示し、http://domain/news/allはそれらすべてを 1 ページに一覧表示します。

現在、複数のエンティティと複数のリストがあり、それらすべてを 1 ページに表示したいと考えています。できればhttp://domain/を開いたときに表示されるページ

他のモデルを呼び出す新しいモデルとコントローラーを作成する必要がありますか? これを達成する方法がちょっとわかりません。

4

2 に答える 2

2

私が知っている厳密な定義や規則はありません。

私がすることはこれです:

クラス概要

  • Controller_Homepage
  • Controller_News
  • Model_NewsArticle

行動

Controller_ホームページ

  • Action_IndexModel_NewsArticle複数のエンティティをフェッチし、それらをレンダリングして、出力をビューに渡します。また、必要なその他のエンティティをフェッチし、レンダリングされた出力を表示します。

Controller_News

  • Action_ListModel_NewsArticle複数のエンティティをフェッチし、それらをレンダリングして、出力をビューに渡します。
  • Action_Viewを呼び出しModel_NewsArticle::factory($id)てレンダリングし、出力をビューに渡します。

モデル_ニュース記事

  • factoryを受け入れる静的メソッドが含まれています$id。のインスタンスを返しますModel_NewsArticle
  • 複数の記事を検索するために使用されるメソッドが含まれています。ここでは、クエリ ビルダーが便利です。

これは決して包括的ではなく、多くの詳細を省きましたが、かなり単純で、かなりドライです。

于 2012-04-27T01:09:45.797 に答える
1

これは本当に好みの問題です。別のコントローラーとモデルを使用すると、大規模なプロジェクトでコードを簡単に分離できます。個人的には、新しいコントローラーのみを作成します。これは、潜在的に異なるアクションを持つ別のページであるためです。また、既存のモデルを使用してデータを取得し、コードを DRY (Don't Repeat Yourself) に保ちます。

于 2012-04-27T01:06:08.227 に答える