亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現的數據對象映射模式詳解

2024-05-05 00:07:40
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現的數據對象映射模式。分享給大家供大家參考,具體如下:

還是代碼說話:這里還是遵循策略模式的psr-0代碼規范

數據表:

PHP,數據對象,映射模式

數據庫連接文件Db.php(如果沒有可以到前面一篇《PHP單例模式數據庫連接類與頁面靜態化》里面找)
自動加載類文件Config.php(如果沒有可以去上一篇《PHP策略模式》里拿過來)

入口文件DataUser.php

<?phpdefine('BASEDIR', __DIR__);//自動加載在本文件中沒有被定義的類require 'Config.php';spl_autoload_register('Config::autolad');//獲取數據$user = new Data(1);var_dump($user->id, $user->name, $user->money);//如果想要修改數據$user->id = 1;$user->name = 'zhangjianping';$user->money = 10000;?>

獲取數據的文件Data.php

<?phpclass Data{//數據項public $id;public $name;public $money;//數據庫連接對象protected $con;//查詢數據的構造函數public function __construct($id){  //連接數據庫  $this->con = DB::getInstance()->connect();  //查詢數據  $res = $this->con->query('select * from account where id = '.$id.' limit 1');  $data = $res->fetch(PDO::FETCH_ASSOC);  //把取出來的數據項存儲起來  $this->id = $data['id'];  $this->name = $data['name'];  $this->money = $data['money'];}//修改數據的析構函數public function __destruct(){  $this->con->query("update account set name = '{$this->name}', 'money = {$this->money}' where id = {$this->id}");}}?>

下面我們就使用工廠模式,注冊樹模式,數據對象映射模式來完善一下這個例子

  • 數據庫連接文件Db.php
  • 自動加載類文件Config.php
  • 獲取數據的文件Data.php

我們將原來的入口文件改一下:

DataUser.php

<?phpdefine('BASEDIR', __DIR__);require 'Config.php';spl_autoload_register(Config::autoload);class DataUser{  public function index()  {    //使用工廠模式來生成對象    $user = Factory::getUser(1);    var_dump($user->id);    $this->name();    $this->money();  }  public function name()  {    $user = Factory::getUser(1);    var_dump($user->name);  }  public function money()  {    $user = Factory::getUser(1);    var_dump($user->money);  }}?>

工廠類Factory.php

<?phpclass Factory{  static function getUser($id)  {    //這里使用注冊器模式,不然的話,在上面的文件中,使用工廠模式生成對象得時候就會多次創建對象,很占用資源    //根據id不同插入到注冊樹對象中    $key = 'user_'.$id;    //從注冊器中取出對象    $user = Register::get($key);    //如果注冊器中沒有就創建一個對象并注冊上去    if(!isset($user))    {      $user = new Data($id);      $user = Register::set($key, $user);    }    return $user;  }}?>

注冊器類Register.php

<?phpclass Register{  //存儲對象得變量  protected static $object;  //注冊入注冊器  public static function set($key, $value)  {    self::$object[$key] = $value;  }  //從注冊器中取出  public static function get($key)  {    return self::$object[$key];  }  //從注冊器中刪除  public static function _unset($key)  {    unset(self::$object[$key]);  }}?>

如果這時候我們將Data.php修改為Data1.php,那么在不使用工廠模式的時候就要一個一個的去修改類名,現在只需要在工廠模式中修改一下就好了,我們也可以打印出每一個對象,這時候我們會發現這3個對象都是一樣的,這是因為我們使用了注冊器模式。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色无极影院亚洲| 中文字幕日韩精品在线观看| 亚洲中国色老太| 欧美韩国理论所午夜片917电影| 91精品在线国产| 久久精品国产96久久久香蕉| 欧美中文字幕第一页| 国产原创欧美精品| 国产精品激情av电影在线观看| 久久亚洲国产精品| 国产一区二区在线免费视频| 日韩欧美主播在线| 狠狠色狠狠色综合日日小说| 亚洲国产欧美久久| 久久久久久久国产| 久久夜精品香蕉| 2019中文字幕在线观看| 韩国精品久久久999| 91久久久久久久久久久久久| 欧美激情精品久久久久久变态| 亚洲天堂免费在线| 91精品国产自产91精品| 亚洲欧美国产va在线影院| 欧美精品少妇videofree| 国产精品爱啪在线线免费观看| 国产视频精品xxxx| 日韩一区二区久久久| 91美女福利视频高清| 成人黄色av网| 国产成人精品在线播放| 亚洲丁香婷深爱综合| 午夜免费在线观看精品视频| 日韩三级影视基地| 综合久久五月天| 久久久久久国产| 欧美视频精品一区| 亚洲丝袜一区在线| 91精品视频观看| 亚洲色图35p| 在线播放亚洲激情| 怡红院精品视频| 日韩成人在线电影网| 日韩在线观看免费高清完整版| 精品欧美国产一区二区三区| 97人人做人人爱| 亚洲淫片在线视频| 中文字幕视频一区二区在线有码| 国产九九精品视频| 91在线视频九色| 亚洲一区二区三区视频| 日韩在线观看免费| 国产一区二区在线免费视频| 中文字幕国产日韩| 九九视频直播综合网| 久久久免费在线观看| 综合欧美国产视频二区| 韩剧1988在线观看免费完整版| 97在线视频观看| 日韩av免费在线| 日韩视频免费看| 欧美激情精品久久久久久免费印度| 成人黄在线观看| 91在线观看免费高清完整版在线观看| 亚洲最大福利视频网站| 亚洲欧美日本伦理| 国产精品入口日韩视频大尺度| 亚洲精品国精品久久99热一| 在线观看亚洲视频| 国产欧美精品日韩精品| 亚洲小视频在线| 亚洲精品永久免费| 欧美激情欧美激情| 久久久伊人日本| 91超碰caoporn97人人| 欧美福利视频在线观看| 国产精品777| 国产精品亚洲аv天堂网| 亚洲精品有码在线| 日韩av中文字幕在线播放| 欧美激情视频网| 91亚洲精华国产精华| 国产精品偷伦一区二区| 国产盗摄xxxx视频xxx69| 欧美肥老妇视频| 日韩精品视频免费在线观看| 亚洲偷熟乱区亚洲香蕉av| 韩剧1988在线观看免费完整版| 亚洲视频专区在线| 亚洲精品国产精品自产a区红杏吧| 日韩av在线不卡| 精品国产福利在线| 欧美最猛黑人xxxx黑人猛叫黄| www.欧美精品一二三区| 日韩成人在线视频网站| 亚洲视频在线观看免费| 精品亚洲一区二区| 欧美一级bbbbb性bbbb喷潮片| 成人黄色免费网站在线观看| 国产91色在线|| 亚洲福利视频久久| 国产精品久久久久久久久借妻| 国产精品入口免费视频一| 欧美成人性色生活仑片| 亚洲黄色有码视频| 97精品国产97久久久久久免费| 成人性生交大片免费看视频直播| 欧美激情免费视频| 欧美亚洲第一页| 国产91网红主播在线观看| 成人性教育视频在线观看| 久久中文精品视频| 亚洲性线免费观看视频成熟| 亚洲激情在线观看| 国产精品久久二区| 中文字幕少妇一区二区三区| 欧美色另类天堂2015| 欧美性猛交丰臀xxxxx网站| 国产日韩欧美成人| 亚洲精品456在线播放狼人| 成人国产精品久久久久久亚洲| 国产精品成人一区二区三区吃奶| 国产精品日日做人人爱| 丝袜美腿精品国产二区| 欧美激情视频一区二区三区不卡| 国产suv精品一区二区三区88区| 欧美成人全部免费| 国产精品人成电影| 日韩中文字幕视频| 成人国产在线激情| 欧美在线视频播放| 国产日产久久高清欧美一区| 国产精品永久免费观看| 国产精品无码专区在线观看| 亚洲成人av资源网| 久久69精品久久久久久久电影好| 国产欧美精品一区二区| 91成人免费观看网站| 福利视频导航一区| 国产丝袜一区二区三区免费视频| 精品国产乱码久久久久久虫虫漫画| 国产精品久久一区| 538国产精品视频一区二区| 久久视频精品在线| 久久影院免费观看| 精品高清一区二区三区| 91精品久久久久久久久| 欧美性受xxx| 正在播放国产一区| 国产做受69高潮| 78m国产成人精品视频| 96精品久久久久中文字幕| 成人久久一区二区三区| 欧美在线视频一区| 欧美视频国产精品| 亚洲国产天堂久久综合网| 久久精品男人天堂| 伊人久久综合97精品| 亚洲香蕉成人av网站在线观看| 亚洲国产天堂久久综合| 日韩精品中文字幕在线观看| 国产精品尤物福利片在线观看| 日韩欧美在线播放| 98精品国产自产在线观看| 国产精品老女人精品视频|