LaravelにおけるMVC 調べてみた

MVCとは

アプリケーション設計パターンの1つ。

アプリケーションをModel ,Controller, Viewの3つの責務に分割することで、保守性の高いアプリケーションを作成することができる。

Model・・・ビジネスロジックの実装の責任を持つ

Controller・・・リクエストに応じて処理を振り分ける責任を持つ

View・・・情報の出力部分に責任を持つ

 

LaravelにおけるMVC

Laravelでは、MVCに沿って開発が進めやすいようにMVCに準じたディレクトリ構造をしている。

Laravel8.0の初期構造では、Controllerはapp\Http\Controllersに格納され、Modelはapp\Modelsに格納され、Viewはresources/viewsに格納されている。

しかし、必ずしも初期構造でMVCを実装する必要はない。つまり、LaravelにおけるMVCはディレクトリ構造に依存しているわけではない。

Model

Laravelではデータベースを操作する処理をすることが多いが、本来の役割は上記のようにビジネスロジックを実装するものである。

そのため、Model内でもデータベースを処理するレイヤーとデータベース情報をもとにビジネスロジックを処理するレイヤーに分けるのが理想的である。

この2つのレイヤーが一緒に実装されているModelをファットモデルと呼ぶ。

Cotroller

ルーターからディスパッチされた処理を実装しているクラス。役割上コントローラーと呼ばれているが、実態はクラスの1つ。

そのため、本来はModelで処理するような内容も記述されるケースもあり、Model同様複数の役割が一緒に実装されているControllerをファットコントローラーと呼ぶ。

View

ブラウザに表示される部分のことを指す場合が多い。

LaravelではBladeテンプレートがそれを担っている。

しかし、Responseクラスなどを利用する場合もあり、View=Bladeテンプレートというわけではない。

 

以上!!!!!!!