PHPデータソースアーキテクチャモードの表入口モードの実例分析
2961 ワード
この例では、PHPデータソースアーキテクチャモードのテーブルエントリモードについて説明します.皆さんの参考にしてください.具体的には以下の通りです.
martin fowlerは「エンタープライズアプリケーションアーキテクチャモデル」という本で、私たちが普段接触しているアプリケーション開発を表現層、分野層、データソース層の3つの層に分けています.
レルム・レイヤのレルム・ロジック・モードには、トランザクション・スクリプト、レルム・モデル、およびテーブル・モジュールがあります.
1、トランザクションスクリプトは最も理解しやすく、開発しやすいが、コードの重複などの問題を引き起こしやすいため、後期のメンテナンスに不利で、論理的で簡単な業務を開発するのに適している.例えば、企業情報を展示する企業ステーションがいくつかしかないなどである.
2、分野モデルは3つのモードの中で最も複雑なモードで、欠点は明らかで、高い学習コストが必要であるが、利点も鮮明で、コードがはっきりしていて、多重率が高く、後期のメンテナンスが容易で、複雑で変化の多い応用状況に適している.
3、表モジュールモードは物事のスクリプトと領域モデルの間にあり、私たちが中小規模のプロジェクトを開発する際に通常使用するのは表モジュールモードです.
さて,領域論理モデルについては個人的には以上のような粗浅な理解しかなく,具体的には後で概念を深く理解してから詳しく述べる.
ここでは、データ・ソース・レイヤのデータ・ソース・アーキテクチャ・モードについてお話ししたいと思います.主に、表エントリ・モード、行エントリ・モード、アクティビティ・レコード、データ・マッピングの4つがあります.
今日はまず最も簡単な表入口モードについてお話しします.
本の表エントリモードは、データベース・テーブルがエントリにアクセスするオブジェクトとして機能し、1つのインスタンスが表のすべてのローを処理するように定義されています.
以前に各ページに分散していたsql文をカプセル化したものと理解でき,1枚のテーブルはテーブルに関連するすべてのビジネスロジックを処理し,コードの多重性を良好に向上させたオブジェクトである.
今思えば、卒業当初は表入口モードがよく使われていた.
具体的な実装方法については、コードを参照してください.
database.php
person.php
index.php
実行結果:
PHPについてもっと兴味のある読者は、「phpオブジェクト向けプログラミング入門チュートリアル」、「PHP配列(Array)操作テクニック大全」、「PHP基本文法入門チュートリアル」、「PHP演算と演算子用法総括」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.
martin fowlerは「エンタープライズアプリケーションアーキテクチャモデル」という本で、私たちが普段接触しているアプリケーション開発を表現層、分野層、データソース層の3つの層に分けています.
レルム・レイヤのレルム・ロジック・モードには、トランザクション・スクリプト、レルム・モデル、およびテーブル・モジュールがあります.
1、トランザクションスクリプトは最も理解しやすく、開発しやすいが、コードの重複などの問題を引き起こしやすいため、後期のメンテナンスに不利で、論理的で簡単な業務を開発するのに適している.例えば、企業情報を展示する企業ステーションがいくつかしかないなどである.
2、分野モデルは3つのモードの中で最も複雑なモードで、欠点は明らかで、高い学習コストが必要であるが、利点も鮮明で、コードがはっきりしていて、多重率が高く、後期のメンテナンスが容易で、複雑で変化の多い応用状況に適している.
3、表モジュールモードは物事のスクリプトと領域モデルの間にあり、私たちが中小規模のプロジェクトを開発する際に通常使用するのは表モジュールモードです.
さて,領域論理モデルについては個人的には以上のような粗浅な理解しかなく,具体的には後で概念を深く理解してから詳しく述べる.
ここでは、データ・ソース・レイヤのデータ・ソース・アーキテクチャ・モードについてお話ししたいと思います.主に、表エントリ・モード、行エントリ・モード、アクティビティ・レコード、データ・マッピングの4つがあります.
今日はまず最も簡単な表入口モードについてお話しします.
本の表エントリモードは、データベース・テーブルがエントリにアクセスするオブジェクトとして機能し、1つのインスタンスが表のすべてのローを処理するように定義されています.
以前に各ページに分散していたsql文をカプセル化したものと理解でき,1枚のテーブルはテーブルに関連するすべてのビジネスロジックを処理し,コードの多重性を良好に向上させたオブジェクトである.
今思えば、卒業当初は表入口モードがよく使われていた.
具体的な実装方法については、コードを参照してください.
database.php
'127.0.0.1',
'username' => 'root',
'pwd' => '',
'dbname' => 'bussiness'
);
private static $_instance;
public static function getInstance(){
if(is_null(self::$_instance)){
self::$_instance = new mysqli(self::$_dbConfig['host'], self::$_dbConfig['username'], self::$_dbConfig['pwd'], self::$_dbConfig['dbname']);
if(self::$_instance->connect_errno){
throw new Exception(self::$_instance->connect_error);
}
}
return self::$_instance;
}
}
person.php
instance = Person::getInstance();
}
public function getPersonById($personId){
$sql = "select * from $this->table where id=$personId";
echo $sql;
return $this->instance->query($sql);
}
/** ...**/
}
index.php
getPersonById(1)->fetch_assoc());
die();
実行結果:
select * from person where id=1
array (size=2)
'id' => string '1' (length=1)
'name' => string 'ben' (length=3)
PHPについてもっと兴味のある読者は、「phpオブジェクト向けプログラミング入門チュートリアル」、「PHP配列(Array)操作テクニック大全」、「PHP基本文法入門チュートリアル」、「PHP演算と演算子用法総括」、「php文字列(string)用法総括」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.