浅析php设计模式之数据对象映射模式
php  /  管理员 发布于 7年前   125
php中的设计模式中有很多的各种模式了,在这里我们来为各位介绍一个不常用的数据映射模式吧,希望文章能够帮助到各位。 数据映射模式使您能更好的组织你的应用程序与数据库进行交互。 数据映射模式将对象的属性与存储它们的表字段间的结合密度降低。数据映射模式的本质就是一个类,它映射或是翻译类的属性或是方法到数据库的相应字段,反之亦然。 数据映射的作用(工作)就在于能对双方所呈现出的信息的理解,并能对信息的存取进行控制,如根据存储在数据表中的信息 重建新的域对象,或是用域对象的信息来更新或删除数据表中的相关数据。 对于面向对象代码与数据库表和字段间的映射关系的存储有多种实现方式。其中一种可能的方法就通过手工编码将这种映射关系存储在数据映射类中。 另一种可选的方法是用PHP的数组并将其编码为类本身。这个类也能外源获取数据,如INI或是XML文件。 数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作。 在代码中实现数据对象映射模式,实现一个ORM类,将复杂的sql语句映射成对象属性的操作。对象关系映射(Object Relational Mapping,ORM) ha_cl表 Hacl.php Factory.php Register.php index.php 使用工厂模式会多次创建对象Hacl,浪费资源,如果将对象作为参数传递,一方面会带来额外的使用成本,另外如果很多地方都用到这个对象很容易发生错误,因此在工厂模式中使用注册树模式来解决这个问题。 以上内容给大家介绍了php设计模式之数据对象映射模式,希望对大家有所帮助!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");}}
class 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();
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号