宝哥软件园

php设计模式的数据对象映射模式分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-16

php中有很多种设计模式。这里,让我们介绍一种不常见的数据映射模式。希望这篇文章能对你有所帮助。

数据映射模式使您能够更好地组织应用程序以与数据库交互。

数据映射模式降低了对象属性和存储它们的表字段之间的绑定密度。数据映射模式的本质是一个类,它将类的属性或方法映射或翻译到数据库的相应字段,反之亦然。

数据映射的功能(工作)是理解双方呈现的信息,并控制信息的访问,例如根据数据表中存储的信息。

重建一个新的域对象,或者使用域对象的信息来更新或删除数据表中的相关数据。

有许多方法可以存储面向对象代码和数据库表及字段之间的映射关系。一种可能的方法是通过手动编码将这种映射关系存储在数据映射类中。

另一种选择是使用PHP的数组,并将其编码为类本身。这个类也可以从其他来源获取数据,比如INI或者XML文件。

对象映射模式是映射对象和数据存储,对象的操作会映射到数据存储的操作。

在代码中,实现了数据对象映射模式,并实现了一个ORM类,将复杂的sql语句映射为对象属性的操作。对象关系映射。

Ha_cl表

Hacl.php

?phpnamespace猴面包树;类Hacl { public $ idpublic $ haclnamepublic $ haclcode公共$ hacls受保护的$ dbfunction _ _ construct($ id){ $ this-db=new Baobab DatabaSe MySQL();$this-db-connect('127.0.0.1 ',' root ','',' test ');$res=$this-db-query('从ha_cl中选择*其中id={ $ id } ');$ data=$ RES-fetch _ assoc();$ this-ID=$ data[' ID '];$ this-hacl name=$ data[' ha _ cl _ name '];$ this-hacl code=$ data[' ha _ cl _ code '];$ this-HAC ls=$ data[' HAC ls '];} function _ _ destrust(){ $ this-db-query(' update ha _ cl setha _ cl _ code=' { $ this-hacl code } ',ha_cl_name='{$this-haclname} ',hacl=' { $ this-hacl } '其中ID={ $ this-ID } limit 1 ');}}Factory.php

?phpnamespace猴面包树;class Factory { static function getHacl($ id){ $ key=' user _ '。$ id$ user= Baobab register : get($ key);//表中不同的id表示不同的对象if(!$ user){ $ user=new Baobab Hacl($ id);猴面包树 register :3360 set($ key,$ user);}返回$ user}}Register.php

?phpnamespace猴面包树;类注册{受保护的静态$对象;静态函数集($alias,$ object){ self : $ objects[$ alias]=$ object;} static function _ unset($ alias){ unset(self : $ objects[$ alias]);}静态函数get($ name){ return self : $ objects[$ name];}}index.php

class Page { function index(){ $ hacl=Baobab factory : gethacl(13);$hacl-haclname='测试名称';$ this-test();echo ' ok}函数测试(){ $ hacl=Baobab factory : gethacl(13);$ hacl-hacl='测试内容';} } $ Page=new Page();$ page-index();使用工厂模式将多次创建Hacl对象,这浪费了资源。如果将对象作为参数传递,一方面会带来额外的使用成本。另外,如果对象用在很多地方,很容易出错。因此,在工厂模式中使用注册树模式来解决这个问题。

以上内容介绍了php设计模式的数据对象映射模式,希望对大家有所帮助!

更多资讯
游戏推荐
更多+