|
3.各パートの実装方針の検討
MVCの各パートについて、どのように作成するかを検討します。
Controller
ここでは簡単のために、全てのリクエストは一つのコントローラで処理することにします。また、Controllerの実装は、クラスを用いて、情報のカプセル化を図ることにします(ただし、PHP4ではあまりちゃんとしたカプセル化/隠蔽はできないので、ここでは変数名の重複が起こりにくくする程度の意味しかありません)。
Controllerで行う処理は以下の通りとします。
・リクエストパラメータ「action」と「type」を用いて、行うべき処理を振り分ける。
・actionとtypeの値に対応するModelを実行する。
・表示に使用するページのファイル名を確定し、includeする。
Model
こちらもクラスを用いて実装していきます。一つの機能ごとに一つのクラスを用意する形にします。そしてその処理の中で、処理の内容に応じて、resultオブジェクトに必要な情報を格納していきます。
折角ですので、DAO(Data Access Object)パターンも適用していきましょう。DAOパターンとは、データベースなど、実際のデータの在り処にアクセスする全ての処理を一つのオブジェクトに割り当てて、データアクセス処理を抽象化するための設計パターンです(J2EEパターンの一つです)。ビジネスロジックとデータベースの間に一枚挟み込むような形になります。こうすることによって、データアクセスの方法が変わった時(使用するデータベースシステムが変わったとか、テーブルのスキーマが変わったような場合)にでも、DAOだけを書き換えればアプリケーション全体を変更しなくてもいいということになります。
DAOと一緒に、VO(Value Object)というパターンも使用します。これは、データそのものを表現するためだけのオブジェクトで、値の受け渡しなどを行うときには、VOに各種データを「詰め込んで」受け渡します。多くの場合、データベースの1レコードと対応するような形で一つのオブジェクトが作成されます。
View
ここは普通のPHPになります。あまり複雑なロジックを組み込まないように注意します。PHPにはJavaのカスタムタグのようなものはありませんので限界はあります。が、Viewに関係が無いロジックは組み込まないようにしましょう。
なお、テンプレートを使用するという方法もあります。これを使えば、ロジックは削減できるかと思います。テンプレートを扱う仕組みについては多々ありますが、いくつかご紹介しておきます。
PEAR にもいくつかテンプレート関連のクラスが用意されています。
|