MVC
- モデル:ビジネスロジックの表象
- ビュー:モデルの視覚的表現
- コントローラー:ユーザーの入力に対しモデルやビューを制御する
- ユーザー、商品、注文などの実体
- 注文は複数の商品を含む関係
- カートの内の商品の合計金額の計算といった処理
コンピュータシステム上のビジネスロジックをユーザーと繋ぐのがコントローラーやビュー
フレームワークの基本機能
一般的なコントローラ
- モデルを呼び出す仕組み
- 対応するビューを呼び出す仕組み
DBのテーブルに対応するモデル
- DB操作用のメソッドが用意されている
ビュー(HTML)を組み立てやすくする仕組み
MVCフレームワークはビジネスロジック以外の基本的な処理を部分を骨組み化したもの
→これを導入することでビジネスロジックに注力することができる。
MVCのモデルとMVCフレームワークのモデルは意味合いが違う
MVCとは、モデル、ビュー、コントローラの3つの役割からなる考え方。MVCにおけるモデルは、ビジネスロジックを指し示す。
MVCフレームワークのモデルは、そのフレームワークごとに意味合いが変わるので注意。
フレームワークによってビジネスロジックが制限されることが多い。モデルというクラスを継承すると予めメソッドが用意されてしまう。
アプリケーションによって、ビジネスロジックは異なる。
Symfony(PHP)は,HTTPの制御、認証処理などを細かくコンポーネントとして分離した設計になっている。それを組合わせてSymfonyができている。その組み合わせ方を変えてプラスαしたのが、Laravel.
Symfonyは、継承を少なくして設計の自由度が高い。その分(高度な設計になる分)勉強が難しい。
- ファットコントローラ→モデルを単なるデータオブジェクトとして捉えてしまうと発生してしまう。