前回の「テーブルデータの表示」にページング機能を追加しました。
ページング機能を追加する際に、プログラムの構造をMVCモデル構造にしました。
「Web版レシート管理作成記」のタイトルと掲載内容に相違がありますが、Web版レシート管理アプリを作成するにあたり、サーバーサイドプログラムには押さえておかなければならないポイントがいくつかあります。
これらのポイントをしっかり理解しておかないと、Web版レシート管理アプリの作成はおぼつきません。
そのためにも、当シリーズでは、まずいくつかのポイントについて、理解をした上で、整理をして掲載していきます。
サンプルコードも載せていきます。
これらのポイントが整理されたのちに、Web版レシート管理アプリの作成に取り掛かりますので、完成は来年になりそうです。
MVCモデル構造は、サーバーサイドアプリの基本構造となります。
ますは、MVCモデル構造の基本構成をしっかりと押さえておきたいと思います。
下図は、MVCモデルの構成イメージです。

上図の構成は、次の4つに分かられます。
- ブラウザ要求をコントローラーの適切な処理へ橋渡しする部分
- 処理ロジックに基づき処理し、処理結果表示のビューへリダイレクトする部分(コントローラー)
- 共通化・一般化した特定の処理の部分(モデル)
- ブラウザに結果を表示する部分(ビュー)
各項目について、以下に少し補足説明を書いておきます。
1. ブラウザの要求をコントローラーの適切なメソッドへ橋渡しする部分
ユーザーがブラウザでURLを指定したり、[次ページ]ボタンをクリックしたPOSTリクエストを受け取って、コントローラーのインスタンスを生成し、要求を処理するメソッドを呼び出します。
いわば、要求を受取り適切な処理をするメソッドを呼び出すという、要求側と処理側の橋渡し役をする部分です。
上図で言うと、
URLで指定された要求を受取るのがEntry.phpで、
POSTリクエストを受取るのがReceiveRequest.phpです。
2. 処理ロジックに基づき処理し、処理結果表示のビューへリダイレクトする部分(コントローラー)
実際に処理するのはモデルであったりしますが、コントローラーでは処理ロジックに従って適時それらを道具として使って処理を進めていきます。
処理した結果は、ブラウザに表示するために、ビューへリダイレクトします。
3. 共通化・一般化した特定の処理の部分(モデル)
上図でいうと、
セッションを開始したり、セッションにデータを保存したり、それを取り出したりするのがSessionModel.phpです。
データベースに接続したり、テーブルデータを読み込んだり、作成、更新、削除などを行うのがPDOModel.phpです。
ページングするために1ページに表示するデータがどこからどこまでなのかを求めるのがPagingModel.phpです。
主に、コントローラーやビューで利用します。
4. ブラウザに結果を表示する部分(ビュー)
HTML文の中に<?php タグと ?>タグで囲んだなかにPHPプログラムコードを書き込み、コントローラーが処理した結果などを利用してHTMLを生成し、ブラウザに表示します。(レンダリング)
次回は、MVCモデル構成でuserテーブルデータの表示にページング機能を追加した全コードを掲載します。