掌握ThinkPHP5.0数据库和模型 - (EPUB全文下载)
文件大小:0.65 mb。
文件格式:epub 格式。
书籍内容:
目 录
前言
第一章:数据库架构基础
第二章:数据创建和迁移
第三章:查询构造器
第四章:高级查询技巧
第五章:模型和对象
第六章:模型数据处理
第七章:模型高级用法
第八章:模型关联
第九章:性能和安全
附录A:常见问题
附录B:使用MongoDb
附录C:数据库配置清单
前言
ThinkPHP官方出品,入门
TP5
必读系列(四)
>《掌握数据库和模型》
作 者:流年 张亚俊
最后更新:2017-2-10
概述
本系列文档版权归
ThinkPHP
官方所有,未经授权,禁止任何方式转载和下载,侵权必究!
5.0
版本的数据库和模型相较于
3.2
版本,官方进行了完全重构设计,更加规范和面向对象。本书主要围绕数据库和模型的用法,全面讲解了ThinkPHP
5.0
数据库的数据迁移、生成,以及数据查询处理,其中花费大量的章节讲解了模型及关联的详细用法,帮助一个新手更好的理解数据库和模型的关系及使用,参差了很多的实用技巧和注意事项。
由于新版的数据库和模型的功能细节实在太多,所以本书的目的并非追求面面俱到,而是尽可能以浅显易懂的方式,由浅入深的剖析数据库和模型中最关键以及最精彩的部分,相信比起你曾经耗费的时间和走过的弯路,有时候细小的点拨会给你全面的启发,如果本书看完之后有醍醐灌顶的感觉,那么也不枉费笔者的一番苦心和日夜。
主要内容
通过九个章节的学习,系统的介绍了数据库和模型的基本用法及高级技巧,为了确保学习示例的效果,请确保你使用的是
5.0
系列的最新版本。
章节及完成情况:(
√
表示已经完成)
第一章:数据库架构基础
√
第二章:数据创建和迁移
√
第三章:查询构造器
√
第四章:高级查询技巧
√
第五章:模型和对象
√
第六章:模型数据处理
√
第七章:模型高级用法
√
第八章:模型关联
√
第九章:性能和安全
√
附录A:常见问题(陆续整理)
附录B:使用MongoDb
√
附录C:数据库配置清单
√
由于时间仓促,未能太多时间进行校对勘误,因此已完成的章节也会陆续更新和完善,如有问题可以及时留言,敬请谅解。
阅读对象
本指南的阅读对象是对
ThinkPHP5
有基本的认识并掌握了基本使用,但希望深入了解和使用数据库和模型的开发者。由于篇幅原因,并不打算从基础开始说起,讲述的内容需要你已经掌握下面的基础知识,否则可能会有所困惑,事倍功半。
我们假设你已经了解:
如何安装框架并配置
Vhost
;
了解PHP面向对象和类的用法;
知道如何进行应用配置;
了解命名空间的用法;
如何正确使用路由;
如何使用控制器;
如果对以上内容还不掌握的话,建议首先阅读下本入门系列其它几部:
ThinkPHP5.0快速入门
ThinkPHP5.0路由完全指南
ThinkPHP5.0控制器从入门到精通
第一章:数据库架构基础
第一章:数据库架构基础
本章我们首先从
ThinkPHP5.0
的数据库访问层架构设计原理开始,然后熟悉下数据库的配置,并掌握如何进行基础的查询操作,并简单介绍了分布式、存储过程及事务,学习内容主要包括:
数据库架构设计
数据库配置
如何开始查询
使用参数绑定
查询返回值
动态连接数据库
分布式支持
存储过程调用
数据库事务
总结
数据库架构设计
使用框架开发应用,一般不需要直接操作数据库,而是通过框架封装好的数据库中间层对数据库进行操作。这样的好处主要有两个:一是简化数据库操作,二是做到跨数据库的一致性。这种设计的中间层通常称之为数据库访问抽象层,简称数据访问层(
DAL
),ThinkPHP5的数据访问层是基于PHP内置的
PDO
对象实现。一般抽象层本身并不直接操作数据库,而是通过驱动来实现具体的数据库操作。
ThinkPHP5.0
的数据库设计相比之前版本更加合理,数据访问层划分的更细化,把数据访问对象分成了连接器、查询器、生成器等多个对象,并通过数据库访问入口类统一调用,分工更明确,各司其职,欲知详情且听我慢慢道来。
ThinkPHP数据访问层设计示意图:
数据库入口类
Db
平常我们的数据库操作使用的类库一般都是数据库的入口类
think\Db
。这个类非常的简单,主要就是一个
connect
方法,根据数据库配置参数连接数据库(注意这里的连接并非真正的连接数据库,只是做好了随时连接的准备工作,只有在实际查询的时候才会真正去连接数据库,是一种惰性连接)并获取到数据库连接对象的实例。
Db
类都是静态方法调用,但看起来这个类啥都没实现,那是怎么操作数据库的呢,其实就是封装了数据库操作方法的
静态调用
(利用
__callStatic
方法),下面是代码实现:
// 调用驱动类的方法
public static function __callStatic($method, $params)
{
// 自动初始化数据库
return call_user_func_array([self::connect(), $method], $params);
}
理论上来说,框架并不依赖
Db
类,该类的存在只是为了简化数据库抽象层的操作而提供的一个工厂类,否则你就需要单独实例化不同的数据库连接类。因此,看似可有可无的
Db
类就成了数据访问层实现的点睛之笔了^_^
所有的数据库操作都是经过
Db
类调用,并且
Db
类是一个静态类,但
Db
类自身只有一个公共方法
connect
。
连接器类
Connection
顾名思义,连接类的作用就是连接数据库,也称为连接器。我们知道,不同的数据库的连接方式和参数都是不同的,连接类就是要解决这个差异问题。
数据库入口类里面实例化的类其实就是对应数据库的连接类,连接类的基类是
think\db\Connection
。例如,需要连接
............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 掌握ThinkPHP5.0数据库和模型 - (EPUB全文下载)