首页 > 代码库 > 数据对象映射模式
数据对象映射模式
定义:将对象和数据存储映射起来,对一个对象的操作会映射为数据存储的操作
综合应用实例:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作,结合使用数据对象映射模式,工程模式,注册模式
$page = new Page();
$page->index();
class Page
{
function index()
{
$user = \IMooc\Factory::getUser(1);
$user->name= ‘fango0‘;
$this->test();
}
function test()
{
$user = \IMooc\Factory::getUser(1);
$user->moblie = ‘19123230‘;
}
}<?php
namespace IMooc;
class User
{
public $id;
public $name;
public $moblie;
public $regtime;
protected $db;
function __construct($id)
{
$this->db = new \IMooc\Database\MySQLi();
$this->db->connect(‘127.0.0.1‘, ‘root‘, ‘root‘, ‘test‘);
$res = $this->db->query("select * from user limit 1");
$data = $res->fetch_assoc();
$this->id = $data[‘id‘];
$this->name = $data[‘name‘];
$this->mobile = $data[‘mobile‘];
$this->regtime = $data[‘regtime‘];
}
function __destruct()
{
$this->db->query("update user set name = ‘{$this->name}‘,mobile=‘{$this->moblie}‘,regtime=‘{$this->regtime}‘ WHERE id={$this->id}");
}
}<?php
namespace IMooc;
class Factory
{
static function getUser($id)
{
$key = ‘user_‘.$id;
$user = Register::get($key);
if (!$user)
{
$user = new User($id);
Register::set($key, $user);
}
return $user;
}
}<?php
namespace IMooc;
class Register
{
protected static $objects;
static function set($alias, $object)
{
self::$objects[$alias] = $object;
}
static function get($alias)
{
return self::$objects[$alias];
}
function _unset($alias)
{
unset(self::$objects[$alias]);
}
}
来自为知笔记(Wiz)
数据对象映射模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。