PHP

PHPにおけるMVCフレームワークの考え方


1083327_15207547


MVCについて

PHPでWebアプリケーションを開発する場合、よくMVCフレームワークが使われます。ではMVCフレームワーク使った場合、M(モデル)、V(ビュー)、C(コントローラー)には具体的にどのような処理を書けばいいのかについて書いてみたいと思います。

Webアプリには必ずデータが存在します。データが無ければ画面に表示するものがないのでアプリとして成立しません。ここでいうデータは具体的には、「データベース上にあるデータ」や「CSV形式・TSV形式のファイル上のデータ」「XML形式のファイル上のデータ」などのことです。

MVCフレームワークはRuby on Railsが発祥のようで、そのRuby on Railsでは、M(モデル)はデータベースのテーブルをそのままオブジェクトとして扱います。テーブルAにはモデルAオブジェクトが対応し、テーブルBにはモデルBオブジェクトが対応するというカンジです。

まず、メインの処理となるビジネスロジックはモデルに書きます。たまにコントローラーに書く方もいますが、基本的にはモデルが担当するべきでしょう。具体的には、モデルにメイン処理のメソッドを実装して、コントローラーではこのモデルのメソッドをコールするような形式が良いかと。そしてモデルのメソッドから得られたデータをビューに渡して表示するといった流れになります。

なんとなく「これはモデルの処理ではないなー」みたいな処理をコントローラーにどんどん書いてしまうとコントローラーが複雑化してくるパターンが多いのでそうならないようにしたいものです。

以下に、いくつか具体的な例をあげてみます。

続きを読む

シェアして頂けると嬉しいです