PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

时间:2022-09-22 21:36:18

数据对象映射模式

  1、数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作

  2、在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作

  3、结合使用数据对象映射模式、工厂模式、注册模式

  具体代码如下:

  1、定义一个user表,结构如下:

  PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

  插入一条数据;

  在User.php中定义User类,用来操作数据表;

  PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

  在index.php中new一个User类,修改其属性,在脚本结束时,调用析构方法,将修改后的属性存入数据表,从而实现对象关系映射ORM(object relationship map)

  PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

/*************************************************分割线*****************************************************/

  

  使用工厂模式、注册树模式、数据对象映射模式处理,示例如下:

  在Factory类中定义一个获取User对象的方法,使用注册树模式,保证获取的对象时唯一的;

  PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

  UserPage.php中定义UserPage,用于操作User信息

  PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236

  在index.php入口文件中实例化UserPage

   <?php
    define('BASE_PATH',__DIR__);
    // echo BASE_PATH;
    require './IMooc/Framework.php';
    spl_autoload_register('\IMooc\Framework::autoload');
    $page = new \IMooc\UserPage();
    $page->index();

  执行完毕,通过操作对象属性就可以直接操作数据表,也就是ORM;

PHP设计模式笔记六:数据对象映射模式 -- Rango韩老师 http://www.imooc.com/learn/236的更多相关文章

  1. PHP设计模式笔记九:装饰器模式 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    装饰器模式(Decorator) 概述 1.装饰器模式可以动态地添加修改类的功能 2.一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法 3. ...

  2. PHP设计模式笔记八:原型模式 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    原型模式 概述: 1.与工厂模式作用类似,都是用来创建对象 2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作 3 ...

  3. PHP设计模式笔记五:策略模式 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    策略模式 1.概述:策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式称为策略模式 例如:一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不 ...

  4. PHP设计模式笔记三:三种基本设计模式(工厂模式、单例模式、注册树模式) -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    一.工厂设计模式 index.php $db = IMooc\Factory::createDatabase(); 使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改 ...

  5. PHP设计模式笔记七:观察者模式 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    观察者模式 概述: 1.观察者模式(Observer),当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新 2.场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代 ...

  6. PHP设计模式笔记二:面向对象 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    SPL标准库的使用 SPL是用于解决典型问题(standard problems)的一组接口与类的集合. 1.SPL提供了很多数据结构类,如SplStack.SqlQueue.SqlHeap.SplF ...

  7. PHP设计模式笔记四:适配器模式 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    适配器模式 1.适配器模式,可以将截然不同的函数接口封装成统一的API 2.实际应用举例,PHP的数据库操作有mysql.mysqli.pdo三种,可以用适配器模式统一成一致,类似的场景还有cache ...

  8. PHP设计模式笔记一:准备工作 -- Rango韩老师 http&colon;&sol;&sol;www&period;imooc&period;com&sol;learn&sol;236

    一.编程字体选择 1.选择等宽字体 包括Courier New ,Consolas,Source Code Pro(推荐) 2.环境搭建(建议easyPHP) 二.开发符合PSR规范的基础框架 PSR ...

  9. PHP 设计模式 笔记与总结(10)数据对象映射模式 2

    [例2]数据对象映射模式结合[工厂模式]和[注册模式]的使用. 入口文件 index.php: <?php define('BASEDIR',__DIR__); //定义根目录常量 includ ...

随机推荐

  1. Linux下swoole的安装配置

    前几天搭建swoole环境,在安装php的swoole扩展时不知道什么原因,提示成功,但是使用的时候不能加载,最后决定重新安装php试试,顺便记录了php的安装过程 wget http://cn2.p ...

  2. google vr开源 cardboard

    https://developers.google.com/cardboard/android/ 待续

  3. Linux常用的一些命令

    linux 关闭防火墙命令 servers iptables stop  关闭 servers  iptables status  状态 servers  iptables restart 重启 关闭 ...

  4. php实现在线下载程序安装包功能

    在线下载程序安装包可以很方便在服务器端下载各种程序安装包(Discuz!.phpwind.Dedecms.WordPress....等一些常用程序)并存储在服务器,大大减少站长上传程序安装包时间.默认 ...

  5. SystemFile

    header('Content-Type:text/html; charset = utf-8'); 1. echo "<pre/>";echo __FILE__.&q ...

  6. tortoiseGit的SHH秘钥设置

    tortoiseGit如果安装时使用默认的putty方式,因为putty的秘钥格式和SSH的不一样,所以要使用自带的工具重新生成一次秘钥. 具体的方式是:用puttyGen工具来生成公钥和秘钥,公钥( ...

  7. &ast;&lbrack;hackerrank&rsqb;Tree Covering

    https://www.hackerrank.com/contests/illuminati/challenges/tree-covering 这道题先是在上次交流讨论了一下,然后两位百度的朋友先写完 ...

  8. hibernate入门之person表

    下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ...

  9. 《fullPage&period;js》创建全屏滚动的网站

    插件介绍 fullPage.js是一个简单易用的插件,创建全屏滚动的网站(也被称为单页网站).它允许全屏滚动创建网站,以及添加内部滑块. 浏览器兼容性 主要功能 支持鼠标滚动 支持前进后退和键盘控制 ...

  10. 【Python3&period;6&plus;Django2&period;0&plus;Xadmin2&period;0系列教程之二】学生信息管理系统(入门篇)

    上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...