国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

淺析php設計模式之數據對象映射模式

2020-03-22 18:21:25
字體:
來源:轉載
供稿:網友
php中的設計模式中有很多的各種模式了,在這里我們來為各位介紹一個不常用的數據映射模式吧,希望文章能夠幫助到各位。
數據映射模式使您能更好的組織你的html' target='_blank'>應用程序數據庫進行交互。
數據映射模式將對象的屬性與存儲它們的表字段間的結合密度降低。數據映射模式的本質就是一個類,它映射或是翻譯類的屬性或是方法到數據庫的相應字段,反之亦然。
數據映射的作用(工作)就在于能對雙方所呈現出的信息的理解,并能對信息的存取進行控制,如根據存儲在數據表中的信息重建新的域對象,或是用域對象的信息來更新或刪除數據表中的相關數據。
對于面向對象代碼與數據庫表和字段間的映射關系的存儲有多種實現方式。其中一種可能的方法就通過手工編碼將這種映射關系存儲在數據映射類中。
另一種可選的方法是用PHP的數組并將其編碼為類本身。這個類也能外源獲取數據,如INI或是XML文件。
數據對象映射模式,是將對象和數據存儲映射起來,對一個對象的操作會映射為對數據存儲的操作。
在代碼中實現數據對象映射模式,實現一個ORM類,將復雜的sql語句映射成對象屬性的操作。對象關系映射(Object Relational Mapping,ORM)
ha_cl表Hacl.php
namespace Baobab;class Hacl{public $id;public $haclname;public $haclcode;public $hacls;protected $db;function __construct($id){$this- db = new /Baobab/Database/Mysqli();$this- db- connect('127.0.0.1', 'root', '', 'test');$res = $this- db- query("select * from ha_cl where id = {$id}");$data = $res- fetch_assoc();$this- id = $data['ID'];$this- haclname = $data['ha_cl_name'];$this- haclcode = $data['ha_cl_code'];$this- hacls = $data['hacls'];function __destruct(){$this- db- query("update ha_cl setha_cl_code = '{$this- haclcode}',ha_cl_name = '{$this- haclname}',hacls = '{$this- hacls}'where ID = {$this- id}limit 1");}Factory.php
namespace Baobab;class Factory{static function getHacl($id){$key = 'user_'.$id;$user = /Baobab/Register::get($key);//表中id不同表示的是不同的對象if(!$user){$user = new /Baobab/Hacl($id);/Baobab/Register::set($key, $user);return $user;}Register.php
namespace Baobab;class Register{protected static $objects;static function set($alias, $object){self::$objects[$alias] = $object;static function _unset($alias) {unset(self::$objects[$alias]);static function get($name) {return self::$objects[$name];}index.phpclass Page{function index(){$hacl = Baobab/Factory::getHacl(13);$hacl- haclname = '測試名稱';$this- test();echo 'ok';function test(){$hacl = Baobab/Factory::getHacl(13);$hacl- hacls = '測試內容';$page = new Page();$page- index(); 使用工廠模式會多次創建對象Hacl,浪費資源,如果將對象作為參數傳遞,一方面會帶來額外的使用成本,另外如果很多地方都用到這個對象很容易發生錯誤,因此在工廠模式中使用注冊樹模式來解決這個問題。
以上內容給大家介紹了php設計模式之數據對象映射模式,希望對大家有所幫助!PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长乐市| 东乡县| 沈阳市| 扶风县| 松滋市| 赫章县| 皋兰县| 兰坪| 栾川县| 清水县| 建始县| 广州市| 东乌| 乌拉特后旗| 全南县| 吉林省| 广德县| 盐山县| 出国| 渭源县| 平南县| 枣阳市| 连云港市| 浙江省| 平武县| 永新县| 胶州市| 衡水市| 阿城市| 肥东县| 湾仔区| 乌兰浩特市| 澄江县| 龙口市| 桓台县| 女性| 集贤县| 中方县| 新巴尔虎右旗| 卢龙县| 德兴市|