91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

晋城| 安图县| 正蓝旗| 沁水县| 上犹县| 乌拉特后旗| 甘泉县| 封开县| 栾川县| 临夏市| 禹城市| 永济市| 项城市| 酉阳| 公安县| 汉阴县| 延吉市| 南开区| 茶陵县| 怀化市| 那曲县| 清涧县| 罗甸县| 饶阳县| 满洲里市| 崇州市| 天祝| 保靖县| 同仁县| 宣威市| 荣昌县| 青岛市| 莱阳市| 疏勒县| 浏阳市| 阜宁县| 行唐县| 简阳市| 河津市| 恩施市| 阿瓦提县|