并不清楚你说的是哪个版本,暂且当成3.2版本。
首先,如果你还没有比较熟悉面向对象,先把OOP过一遍再看框架的东西
如果已经熟悉了OOP,再弄清楚PDO
最后要弄清楚M方法到数据库的调用栈
你说 “最终调用的是thinkphp核心目录下的DB/Driver”,可以说对,也可以说不对。因为实际上Driver是作为一个具体数据库驱动的基类。
调用栈
1、调用M方法,实际上是实例化一个Model对象
2、一个Model对象至少有一个数据库链接句柄,这时候通过Db数据库中间层获取到一个具体的数据库驱动实例。这是一个什么数据库取决于配置(假设是mysql)。中间层的设计就是你不需要管底层是什么样的数据库,直接获取就行了。
(到这里为止我知道你都是清楚的,但是其实这里并没有实际连接数据库)
3、这个时候再返回Model类中,所有的涉及到的数据库操作CURD,基本上都是通过$this->db来完成的。$this->db就是2中获取到的实例。
4、这个时候到Driver/Mysql.class.php,和Driver.class.php中看一下。在调用相应的方法的时候,都有调用同一个方法initConnect, 这里开始才是真正的连接数据库。
这是我学习TP时自己的理解。如果有说错的望指点。大家一起交流。
希望对你有帮助!