システムの基本設計

flow.png

システムには登録、編集、削除、検索、詳細情報表示の5種類の基本的な操作を行うための汎用窓口プログラムがあらかじめ用意されています。
例として、上の図は汎用登録プログラム(regist.php)の処理フローの概要です。
汎用登録プログラムは全てのテーブルに対して「登録画面」「入力内容の検証と登録内容確認画面」「登録の実行と結果画面」の機能を提供することができます。
(もちろん、登録権限のないユーザーに対してはエラー画面の表示も)

ユーザーのメール認証やログイン機能なども同様に汎用プログラムとして容易されているので、ほとんどの場合、独自の窓口プログラムを追加する必要はないでしょう。

flow2.png

A,B:
全ての窓口プログラムは基本的に上の図のような構造になっています。
窓口プログラム自体のコードは原則固定的な設計で、しばしば変更が必要になる部分についてはSystemクラスに別途切り分けています。
「登録処理をカスタマイズする」などと言う場合、基本的には「Systemクラスの登録処理関連メソッドをカスタマイズする」という意味になります。

C,D:
Systemクラスはテーブルに対する登録・編集・削除・検索時の処理、各種操作・情報画面の出力等のメソッドを一つにまとめたクラスで、カスタマイズの中核となる部分です。
Systemクラスはテーブル毎に派生クラスを作ることができ(D)、Systemクラスには共通の処理、派生クラスにはテーブル毎の固有処理と書き分けることができます。
なお、組み込みの窓口プログラムは使用するべきSystemクラスを自動的に判別しますので、オリジナルの派生クラスを使いたい場合はファイルをそのまま追加するだけでOKです。

まとめると、窓口プログラムとSystemクラスはTemplateMethodパターン、Systemクラスと派生クラスはStorategyパターンの構造を持つと言えます。

E,F:
データベース処理とテンプレート処理は純粋な機能群ですので、それぞれ個別に解説します。


添付ファイル: fileflow2.png [詳細] fileflow.png [詳細]

トップ   編集 凍結 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-04-22 (月) 15:00:47 (4012d)