Skip to content

Latest commit

 

History

History
68 lines (58 loc) · 2.04 KB

db.md

File metadata and controls

68 lines (58 loc) · 2.04 KB

数据库DB类注解说明

namespace Illuminate\Support\Facades;

/**
 * @see \Illuminate\Database\DatabaseManager
 * @see \Illuminate\Database\Connection
 */
class DB extends Facade
{
    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return 'db';
    }
}

这伪装框架在启动的时候早就注册过了,不在说明
在调用DB时实际上是返回Illuminate\Database\DatabaseManager 实例对象
在静态调用时触发如下流程【前面已经说过了】
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理
DB静态原理

经过层层运行,最终返回如下玩意

DB静态原理

插入数据动作
DB静态原理 DB静态原理

查询构造器
db::table()会返回\Illuminate\Database\Query\Builder
实例,以下是查询构造器的部分示例用法

DB静态原理 DB静态原理 DB静态原理 DB静态原理 DB静态原理
查询构造器是基于\Illuminate\Database\Connection 连接器
该类run的crud都是基于pdo层处理的

所以db::(crud)方法是基于连接\Illuminate\Database\Connection
的,其内是基于pdo层处理
db::table()->(xxx) 是基于\Illuminate\Database\Query\Builder查询构造器 但构造构造器是基于连接,连接基于pdo层的

具体关系如下
DB静态原理
DB静态原理