モデル、ビュー、コントローラ (MVC)

MVC とは?

MVC は、アプリケーションでの役割に基づいてコードを分離するアプローチです。 アプリケーションフローでは、まずコントローラが呼び出されます。コントローラは、モデルを使用してデータを取得するメソッドを実行します。 それから、コントローラはどのビューを呼び出すか決定します。 ビューには訪問者が閲覧する出力が含まれています。

コントローラ

FuelPHP のルーティングは、呼び出すコントローラとメソッドをリクエスト URL に基づいて、決定します。 ここからアプリケーションが動き出します。コントローラは、何を行うか、ユーザの入力をどう扱うか、 どのデータが処理されるか、どのビューをユーザに見せるか、を決めます。しかし、コントローラは、自身では何も行いません。 モデルとクラスを呼び出します。

詳細についてはコントローラを参照ください。

モデル

データを取得/処理/削除する必要がある時は必ず、モデルで行うべきです。 モデルは、ある種のデータの表現であり、データを変更するメソッドがあります。例: コントローラに SQL クエリを置くべきではありません。SQL クエリはモデルに置き、コントローラはクエリを実行するときにモデルを呼び出します。 こうすると、データベースが変更になった場合、コントローラを変更する必要はなく、 データベースを扱うモデルのみ変更すればよいです。

詳細についてはモデルを参照ください。

ビュー

ビューには HTML が含まれます。コントローラや、出力を意図しない他のクラスには HTML が含まれるべきではありません。 ロジックからレイアウトを分離することで、 レイアウトを変更するときに、ビューを変更しさえすれば良く、コントローラを気にする必要はなくなります。
したがって、ビューでは PHP は echoforeach を使う程度にすべきです。

詳細についてはビューを参照ください。

ビューモデル

アプリケーションが複雑になると、アプリケーションロジックよりもビューに関係するロジックをコントローラに含めるかどうか判断が難しくなるでしょう。 コントローラに含めるかどうか判断が難しくなるでしょう。 この場合、ビューモデルが役立ちます。 ビューモデルはコントローラとビューの仲立ちをします。

詳細についてはビューモデルを参照ください。