2017-09-06 4 views
-2

私はPHPプログラミングを学び、MVC(モデルビューとコントローラ)に出くわしました。誰もモデルとコントローラについてもっと詳しく説明できますか?コントローラではありませんモデルはPHP MVCで同じです

次のスタックオーバーフローの質問What is the best definition of MVC?では、Modelがデータベースを担当するという回答がありました。しかし、それはどのプロセスとデータベースを使用するコントローラですか?

+1

コントローラは、あなたの不動産エージェントですが、モデルはあなたが興味のある家であり、ビューは、エージェントが与える選択ツアーです君は。エージェントは、利用可能な住宅のリストを収集し、次にそれらを最もフラットにするビューを準備します。明らかにこれらの根拠に基づいて、誰も不動産仲介業者と家が同じものであると主張することはできません。 – apokryfos

答えて

1

いいえ、彼らは同じではありませんね。モデルには、アプリができることがすべて含まれています。

  • データ構造を記述するクラスはありますか?モデルの一部。
  • 新規ユーザーを作成するための機能/方法/サービス?モデルの一部。
  • 電子メール通知を送信していますか?モデルの一部。
  • 複雑なデータベースクエリですか?モデルの一部。
  • 他のすべては?モデルの一部。

コントローラとは、「モデルと外部のインターフェイス」です。コントローラは、HTTPリクエストやコマンドライン入力、イベントバス上のイベントなどの外部からの入力を受け取り、その入力に基づいてモデル内でどのようなアクションをトリガするかを決定し、おそらくどのような種類のViewで応答するかを決定します。これらのさまざまなシナリオを基になるモデルのアクションに適応させるさまざまなシナリオ(Webサーバー、コマンドラインインターフェイス、cronジョブ)に対して、異なるコントローラを使用することができます。

-1

PHPのMVC用に、私はCodeigniterが非常に便利であることを発見しました!それは他の言語でMVCから少し異なりAltough ... theyr定義から、ここで :

  • モデルは、あなたのデータ構造を表しています。通常、モデルクラスには、データベース内の情報の取得、挿入、および更新に役立つ関数が含まれます。
  • 表示は、ユーザーに提示されている情報です。ビューは通常はWebページですが、CodeIgniterでは、ビューはヘッダーやフッターのようなページフラグメントでもあります。また、RSSページ、または他のタイプの「ページ」でもかまいません。
  • コントローラは、モデル、ビュー、およびHTTP要求を処理してWebページを生成するために必要なその他のリソース間の仲介役をします。

https://codeigniter.com/user_guide/overview/mvc.html

+0

これはMVCではありません。あなたがCodeIgniterの記述を書いたもの、それはMVCとして宣伝されています...そうではありません。 –

-2

いいえ、コントローラとモデルはMVCアーキテクチャでは同じではありません。このモデルは、すべてのビジネスデータを追跡するために使用されています。 コントローラーは何をすべきかを指示し、モデルはそれを行う方法を知っています

コントローラは、アプリケーションをオーケストレーションします。コントローラは、外部(通常はユーザ入力)の からイベントを受信し、モデルと対話し、 適切なビューをユーザに表示します。

モデルは、アプリケーションの状態を維持する責任があります。モデルはデータ以上のものです。そのデータに適用されるすべてのビジネスルールを適用します( )。

概念を組み合わせる方法を学ぶために、 次の図を参照してください。enter image description here

関連する問題