亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP數據源架構模式中表入口模式的示例分析

發布時間:2021-10-18 17:38:49 來源:億速云 閱讀:266 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關PHP數據源架構模式中表入口模式的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

martin fowler在《企業應用架構模式》一書中將我們平常接觸到的應用開發分為三層:表現層、領域層和數據源層。

其中領域層的領域邏輯模式有:事務腳本、領域模型以及表模塊。

1、事務腳本最容易理解也最易于開發,不過由于易造成代碼重復等問題,不利于后期的維護,比較適合開發邏輯較為簡單的業務,比如只有幾個用于展示企業信息的企業站等;

2、領域模型是三種模式中最為復雜的模式,缺點顯而易見,需要較高的學習成本,不過優點也很鮮明,就是代碼清晰,復用率高,便于后期的維護,比較適合用于復雜多變的應用情形下;

3、表模塊模式則介于事物腳本和領域模型之間,我們開發中小型項目時通常使用的都是表模塊模式。

好了,對于領域邏輯模式個人只有以上的粗淺理解,具體等以后加深理解了概念之后再來詳談。

這里想跟大家說一說數據源層的數據源架構模式,主要有四種:表入口模式、行入口模式、活動記錄和數據映射器。

今天先講最簡單的表入口模式。

書中對表入口模式的定義為:充當數據庫表訪問入口的對象,一個實例處理表中的所有行。

可以理解為對之前分散在各個頁面的sql語句進行封裝,一張表就是一個對象,該對象處理所有與該表有關的業務邏輯,很好的提高了代碼的復用性。

現在想起來,當初剛畢業那會兒,經常使用表入口模式。

具體的實現方式參見代碼:

database.php

<?phpclass Database{ //只是為了演示,通常情況下數據庫的配置是會單獨寫在配置文件中的 private static $_dbConfig = array( 'host' => '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

<?phprequire_once 'database.php';class Person extends Database{ public $instance; public $table = 'person'; public function __construct(){ $this->instance = Person::getInstance(); } public function getPersonById($personId){ $sql = "select * from $this->table where id=$personId"; echo $sql; return $this->instance->query($sql); } /**其他的一些增刪改查操作方法...**/}

index.php

<?phprequire_once 'person.php';$person = new Person();var_dump($person->getPersonById(1)->fetch_assoc());die();

運行結果:

select * from person where id=1array (size=2) 'id' => string '1' (length=1) 'name' => string 'ben' (length=3)

上述就是小編為大家分享的PHP數據源架構模式中表入口模式的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

饶阳县| 堆龙德庆县| 紫金县| 报价| 伊通| 昌都县| 理塘县| 博罗县| 安阳市| 崇阳县| 花莲县| 耒阳市| 新津县| 邵阳县| 碌曲县| 综艺| 葫芦岛市| 宣威市| 陇川县| 青海省| 兰州市| 榆树市| 依安县| 龙井市| 北安市| 霍州市| 阿合奇县| 巩留县| 罗定市| 孟州市| 辽阳市| 宜兰县| 双流县| 朝阳县| 洛扎县| 漳平市| 景宁| 万载县| 临夏县| 温州市| 赤水市|