ホームページ > php教程 > php手册 > PHP – アーキテクチャ設計データ アクセス層

PHP – アーキテクチャ設計データ アクセス層

WBOY
リリース: 2016-06-21 08:50:51
オリジナル
1099 人が閲覧しました

まず、次のようにアーキテクチャ間の関係を簡単に述べます:

まず、標準 DAL クラス (STDAL) を設計し、getData、delete、update などの標準共通関数を配置します。
プログラムで使用されるさまざまな DAL を設計するときは、基本的にすべてのテーブルを DAL で実装する必要があります。後で、テーブル アプリケーションや画面のプレゼンテーションなどのニーズに応じて、テーブルに複数の DAL を含めることもできます。ビューと同様の概念です。
ビジネス ロジックの動作に従って、挿入および更新前のデータ チェックなど、対応する BLL が生成されます。この部分はさまざまなビジネス アプリケーションによって異なるため、以下では説明しません。
将来的には、DAL エンティティの作成を支援するために特別に使用される DAL プロダクション ファクトリ (DALFactory) が存在する予定です。これは、負荷を軽減するために、DAL プログラム ファイルが別のホストや別のディレクトリの場所などに配置される可能性があるためです。したがって、DAL 作成メソッドは DALFactory
に均一にカプセル化されています。 次に、上記に従って次のプログラムを構築しました:

STDAL.php

	1 <?php
 2 class STDAL
 3 {
 4     public $TableName;
 5      
 6     public function __construct() {
 7         echo $this->TableName." init STDAL<br>";
 8     }
 9      
10     public function getData()
11     {
12         print "select * from ".$this->TableName."<br>";
13     }
14      
15     public function setDB($db)
16     {
17         echo $db."<br>";
18     }
19 }
20 ?>
ログイン後にコピー

STUser.php

	1 <?php
2 class DAL_STUser extends STDAL
3 {
4     public function __construct() {
5         $this->TableName = "STUser";
6         parent::__construct();
7     }
8 }
9 ?>
ログイン後にコピー

STDoc.php

	1 <?php
2 class DAL_STDoc extends STDAL
3 {
4     public function __construct() {
5         $this->TableName = "STDoc";
6         parent::__construct();
7     }
8 }
9 ?>
ログイン後にコピー

以下の DAL 生成ファクトリーは、「PHP - カテゴリの予備調査」で述べた手法を使用しています。興味のある方はぜひご覧ください。
DALFactory.php

	1 <?php
 2 class DALFactory
 3 {
 4     private static $db;
 5      
 6     public static function getInstance($prgName) {
 7          
 8         if(!self::$db) { 
 9             self::$db = $prgName." get DB connection"; 
10         }
11         $class = "DAL_$prgName";
12         $obj = new $class();
13         $obj->setDB(self::$db);
14         return $obj;
15     }
16 }
17 ?>
ログイン後にコピー

以上でデータアクセス層の作成は完了です。次に、正常に動作するかテストしてみます。

test.php

	1 <?php
2 $prgName = "STUser";
3 $obj = DALFactory::getInstance($prgName);
4 $obj->getData();
5  
6 $prgName = "STDoc";
7 $obj = DALFactory::getInstance($prgName);
8 $obj->getData();
9 ?>
ログイン後にコピー

テスト結果は次のとおりです:
STUser init STDAL
STUser が DB 接続を取得
select * from STUser
STDoc init STDAL
STUser が DB 接続を取得
select * from STDoc



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート