用代理模式设计了一个PHP操作数据库的框

首先我是一个Androidcoder,在开发过程中总是碰到这样的问题,那就是当需要从服务器拿数据时总是需要去寻求后台工程师的帮助。于是我就想我能不能自己搭个后台自己给自己传递数据呢,我就稍微研究了下。利用LNMP在VMware搭建的虚拟机上自己搭了个服务器。如果大家对搭建服务器有需求或者好奇可以联系我。如果想看懂以下的内容,你可能需要一点PHP基础和设计模式基础。

1.整体预览

从图中大家可以看到,一共三个PHP文件。Http.php为我自己写的测试文件。

HttpMysql.php为代理文件。真正操作数据库的执行者为RichConnect.php。吐槽一下为什么叫RichConnect.php因为作者想发财想疯了,哈哈。

2.RichConnect.php

初始化函数,所需三个参数均为连接数据库时需求的参数,一些密码目前设置为默认的。可更改,接受参数。

初始化时默认连接数据库。

连接数据库中,如果数据库未创建则创建此数据库。

创建数据库,创建表。

查询数据库中某条数据。参数为表名和查询限定的条件为数组。此方法有一个重载的方法如下:

此方法接收SQl语句, 种查询方法真正执行查询时也是将数组拼接成SQL语句。

剩下的删除,更改,插入方法就不贴了,与查询类似。还有一些打log的方法,断开和数据库连接的方法比较简单就忽略了吧。

3.HttpMysql.php

HttpMysql.php是一个代理类。构造函数中接收的参数为connct类型的参数

上文的RichConnect就是这种类型。这样做的好处是什么呢。当我们需要扩展或者修改我们的代码操作数据库的逻辑时。我们只需要更换connet就能实现更换的目的。我们可以用与RichConnect实现相同接口的connet类来替换RichConnect。

如果想connet执行之前增加自己的逻辑。则可以在我上面注释的地方增加自己的逻辑,此时就变成了装饰模式。其他方法类同就不贴了。

4.







































鐩栧崥澹洊鐧鹃湒鍝釜鑽墿鏈夊崠
鍖椾含娌荤枟鐧界櫆椋庡幓鍝鍖婚櫌鏈濂?



转载请注明:http://www.xxcyfilter.com/zyfl/6832.html