私はPHPプログラミングを学び、MVC(モデルビューとコントローラ)に出くわしました。誰もモデルとコントローラについてもっと詳しく説明できますか?コントローラではありませんモデルはPHP MVCで同じです
次のスタックオーバーフローの質問What is the best definition of MVC?では、Modelがデータベースを担当するという回答がありました。しかし、それはどのプロセスとデータベースを使用するコントローラですか?
私はPHPプログラミングを学び、MVC(モデルビューとコントローラ)に出くわしました。誰もモデルとコントローラについてもっと詳しく説明できますか?コントローラではありませんモデルはPHP MVCで同じです
次のスタックオーバーフローの質問What is the best definition of MVC?では、Modelがデータベースを担当するという回答がありました。しかし、それはどのプロセスとデータベースを使用するコントローラですか?
いいえ、彼らは同じではありませんね。モデルには、アプリができることがすべて含まれています。
コントローラとは、「モデルと外部のインターフェイス」です。コントローラは、HTTPリクエストやコマンドライン入力、イベントバス上のイベントなどの外部からの入力を受け取り、その入力に基づいてモデル内でどのようなアクションをトリガするかを決定し、おそらくどのような種類のViewで応答するかを決定します。これらのさまざまなシナリオを基になるモデルのアクションに適応させるさまざまなシナリオ(Webサーバー、コマンドラインインターフェイス、cronジョブ)に対して、異なるコントローラを使用することができます。
PHPのMVC用に、私はCodeigniterが非常に便利であることを発見しました!それは他の言語でMVCから少し異なりAltough ... theyr定義から、ここで :
これはMVCではありません。あなたがCodeIgniterの記述を書いたもの、それはMVCとして宣伝されています...そうではありません。 –
いいえ、コントローラとモデルはMVCアーキテクチャでは同じではありません。このモデルは、すべてのビジネスデータを追跡するために使用されています。 コントローラーは何をすべきかを指示し、モデルはそれを行う方法を知っています。
コントローラは、アプリケーションをオーケストレーションします。コントローラは、外部(通常はユーザ入力)の からイベントを受信し、モデルと対話し、 適切なビューをユーザに表示します。
モデルは、アプリケーションの状態を維持する責任があります。モデルはデータ以上のものです。そのデータに適用されるすべてのビジネスルールを適用します( )。
コントローラは、あなたの不動産エージェントですが、モデルはあなたが興味のある家であり、ビューは、エージェントが与える選択ツアーです君は。エージェントは、利用可能な住宅のリストを収集し、次にそれらを最もフラットにするビューを準備します。明らかにこれらの根拠に基づいて、誰も不動産仲介業者と家が同じものであると主張することはできません。 – apokryfos