【ThinkPHP5】从数据库层框架体会设计思想


在写业务代码时,完成单一功能就可以,在代码中使用 PDO对象MySQL连接类,用原生的mysql语句访问。

在框架中,面向对象和设计模式的思想才更能体现。
以下是TP5中数据库访问的中间层架构。

其中
1、Db:数据库操作的入口对象同时肩负着连接数据库的作用,具体来说在Db内部实例化了一个collection对象,通过这个对象实现数据库的连接;对数据的操作也都是通过Db对象来完成。(工厂模式的设计思想)

2、Collection:通过php的pdo实现数据库的连接;处于一种待命的状态,惰性的,具体说就是在执行sql语句的时候进行连接这样可以节约服务器的资源。
image.png

3、Query:是对数据库常见操作CURD的封装,支持链式操作,因此开发者可以不用关心细节,支持不同类型数据库的查询;(面向对象的封装思想,隐藏细节和差异,让开发者调用更加方便)

4、Builder:将query封装的(不同类型)查询语句翻译成原生的sql语句,然后返回给collection,然后进行连接、查询,可以具体处理不同数据库查询的差异性,使得开发者可以不考虑具体的实现方式;

5、Drivers:提供不同类型数据库的连接器的类,开发者不需要关心具体的实现细节。

数据库访问中间层的目的:
1、简化在查询操作数据库过程中的sql语句的编写;
2、开发者不需要关心具体的实现形式,实现进行数据库的访问。

阅读 415

推荐阅读