天天看点

【2022/01/25】thinkphp源码无差别阅读(二十九)

thinkphp源码无差别阅读(二十九)

【2022/01/25】thinkphp源码无差别阅读(二十九)

ORM阅读

db/Where.plhp

  • 属性:where、enclose
  • 构造方法:__construct
  • 设置是否添加括号:enclose
  • 解析query对象为数组:parse
  • 分析查询表达式:parseItem
  • 修改器:__set
  • 获取器:__get
  • 检测数组对象的值:__isset
  • 销毁:__unset
  • 数组式访问:offsetSet、offsetExists、offsetUnset、offsetGet

facade/Db.php

  • 获取当前facade对应的类名:getFacadeClass

model/Collection.php

  • 延迟预载于关联查询:load
  • 删除:delete
  • 更新:update
  • 设置隐藏:hidden
  • 设置显示:visible
  • 设置需要追加的属性:append
  • 设置模型输出场景:scene
  • 设置父模型:setParent
  • 设置获取器:withAttr
  • 关联属性到当前模型:bindAttr
  • 按指定键整理数据:dictionary
  • 差集:diff
  • 交集:intersect

model/Pivot.php

  • 属性:parent、autoWriteTimestamp

model/Relation.php

  • 属性:parent、model、query、foreignKey、localKey、baseQuery、selfRelation、withLimit、withField、withoutField、default
  • 获取关联模型:getParent
  • 获取query:getQuery
  • 获取外键:getForeignKey
  • 获取主键:getLocalKey
  • 获取当前模型:getModel
  • 是否自关联:isSelfRelation
  • 封装关联数据集:resultSetBuild
  • 获取查询字段:getQueryFields
  • 获取查询字段:getRelationQueryFields
  • 获取查询条件:getQueryWhere
  • 限制关联数量:withLimit
  • 限制关联字段:withField
  • 排除关联字段:withoutField
  • 设置关联数据不存在时的默认:withDefault
  • 获取关联数据默认值:getDefaultModel
  • 判断闭包的参数类型:getClosureType
  • 执行基础查询:baseQuery
  • 动态调用:__call

计划阅读

[ ] framework源码

[ ] orm源码

[ ] helper源码