【2021/12/26】thinkphp源码无差别阅读(四)

BitWanderlustPro
• 阅读 1035

thinkphp源码无差别阅读(四)

framework阅读

Middleware.php

  • 属性:queue、app
  • 构造方法:__construct
  • 导入中间件:import
  • 注册中间件:add
  • 注册路由中间件:route
  • 注册控制器中间件:controller
  • 注册中间件到开始位置:unshift
  • 获取所有中间件:all
  • 调度广告:pipeline
  • 结束调度:end
  • 移除处理:handleException
  • 解析中间件:buildMiddleware
  • 中间件排序:sortMiddleware
  • 获取中间件优先级:getMiddlewarePriority

Pipeline.php

  • 属性:passable、pipes、exceptionHandler
  • 初始数据:send
  • 调用栈:through
  • 执行:then
  • 设置异常处理器:whenException
  • 未知:carry
  • 异常处理:handleException

Request.ph

  • 属性:pathinfoFetch、varPathinfo、varMethod、varAjax、varPjax、rootDomain、httpsAgentName、proxyServerIp、proxyServerIpHeader、method、domain、host、subDomain、panDomain、url、baseUrl、baseFile、root、pathinfo、path、realIp、controller、action、param、get、post、request、rule、route、middleware、put、session、cookie、env、server、file、header、mimeType、content、filter、input、secureKey、mergeParam
  • 构造函数:__construct
  • 自定义实例化:__make
  • 设置域名:setDomain
  • 获取域名:domain
  • 获取当前根域名:rootDomain
  • 设置子域名:setSubDomain
  • 获取子域名:subDomain
  • 设置泛域名:setPanDomain
  • 获取泛域名:panDomain
  • 设置url:setUrl
  • 获取url:url
  • 设置当前url:setBaseUrl
  • 获取url:baseUrl
  • 获取当前执行的文件:baseFile
  • 设置url访问根地址:setRoot
  • 获取url跟地址:root
  • 获取url根目录:rootUrl
  • 设置当前pathinfo:setPathinfo
  • 获取当前pathinfo:pathinfo
  • 获取访问后缀:ext
  • 获取当前请去时间:time
  • 当前请求资源的类型:type
  • 设置资源类型:mimeType
  • 设置请求类型:setMethod
  • 获取请求类型:method
  • 是否get:isGet
  • 是否post:isPost
  • 是否put:isPut
  • 是否delete:isDelete
  • 是否head:isHead
  • 是否patch:isPatch
  • 是否options:isOptions
  • 是否cli:isCli
  • 是否cgi:isCgi
  • 获取请求参数:param
  • 获取所有参数:all
  • 设置路由:setRule
  • 获取路由:rule
  • 设置路由:setRoute
  • 获取路由:route
  • 获取get参数:get
  • 获取中间件参数:middleware
  • 获取post参数:post
  • 获取put参数:put
  • 获取参数:getInputData
  • 获取delete参数:delete
  • 获取patch参数:patch
  • 获取参数:request
  • 获取环境变量:env
  • 获取session:session
  • 获取cookie:cookie
  • 获取server:server
  • 获取上传文件:file
  • 处理上传文件:dealUploadFile
  • 抛出异常:throwUploadFileException
  • 设置或者获取header:header
  • 获取参数:input
  • 过滤数据:filterData
  • 类型转换:typeCast
  • 获取数据:getData
  • 设置或者获取过滤规则:filter
  • 获取过滤规则:getFilter
  • 递归过滤:filterValue
  • 判断是否有参数:has
  • 获取指定的参数:only
  • 排除指定的参数:except
  • 是否ssl:isSsl
  • 是否json:isJson
  • 是否ajax:isAjax
  • 是否pjax:isPjax
  • 获取客户ip:ip
  • 是否合法ip:isValidIp
  • ip转化为二进制:ip2bin
  • 是否手机访问:isMobile
  • 获取scheme:scheme
  • 获取query参数:query
  • 设置host:setHost
  • 获取host:host
  • 获取port:port
  • 获取protocol:protocol
  • 远程端口:remotePort
  • 获取contentType:contentType
  • 获取当前安全key:secureKey
  • 设置当前控制器:setController
  • 设置当前操作:setAction
  • 获取控制器:controller
  • 获取方法:action
  • 设置或者获取content:getContent
  • 获取当前的php://input:getInput
  • 生成请求令牌:buildToken
  • 检查请求令牌:checkToken
  • 设置中间件传递数据:withMiddleware
  • 设置get数据:withGet
  • 设置post数据:withPost
  • 设置cookie数据:withCookie
  • 设置session:withSession
  • 设置server:withServer
  • 设置header:withHeader
  • 设置env:withEnv
  • 设置input:withInput
  • 设置上传文件:withFiles
  • 设置路由变量:withRoute
  • 设置中间件传递数据:__set
  • 获取中间件传递数据:__get
  • 判断中间件数据:__isset
  • 数据式访问:offsetSet、offsetGet、offsetExists、offsetUnset

计划阅读

[ ] framework源码
[ ] orm源码
[ ] helper源码

留言

点击留言

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
捉虫大师 捉虫大师
3年前
Nacos注册中心之概要设计
前言在之前的文章中分析了Nacos配置中心,配置中心的核心是配置的创建、读取、推送。注册中心的核心比配置中心多一个服务探活模块,他俩的相似度非常高,甚至阿里内部的注册中心就叫ConfigServer。Nacos注册中心打算分成几个模块来分析,本文重点在于概要设计,基于2.0.0版本。环境搭建用Nacos的源码来搭建源码阅读和调试环境,可参考Nacos调试
Wesley13 Wesley13
3年前
ThinkPHP6.0学习笔记
ThinkPHP路由by:Mirror王宇阳Thinkphp的路由的主要作用是为了让URL地址更加美观、简洁、优雅……;设置路由对URL的检测、验证等操作提供了极大的便利性;路由功能是默认开启的config/app.php文件中设置:'with_route'true;路由
Wesley13 Wesley13
3年前
FMDB源码阅读(—)
阅读目录1.前言2.FMDB的最基本流程(结合上面例子)3.总结4.参考文章【原】FMDB源码阅读(一)本文转载请注明出处——polobymulberry博客园回到顶部1.前言说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于FMDB组件我是一点都没用过。好在FMD
Stella981 Stella981
3年前
HashMap 源码阅读
前言  之前读过一些类的源码,近来发现都忘了,再读一遍整理记录一下。这次读的是JDK11的代码,贴上来的源码会去掉大部分的注释,也会加上一些自己的理解。Map接口  !(https://oscimg.oschina.net/oscnet/88f72cb45832ae45bcf0f56828ead245e60.pn
Wesley13 Wesley13
3年前
ThinkPHP视频学习教程,thinkcmf基础入门
主要介绍thinkcmf,基于thinkphp开发应用,学习本课程前推荐阅读的材料和需要掌握的基础知识。了解thinkphp应用开发,thinkcmf安装方法,以及thinkcmf系统代码架构!http://www.lerhe.cn/index.php?g&marticle&aindex&id11(https://www.oschina.n
Stella981 Stella981
3年前
Flask源码阅读
源码coding:utf8"""flask._compat~~~~~~~~~~~~~Somepy2/py3compatibilitysupportbasedonastrippeddownversionofsixsowedon'thavetodependona
Wesley13 Wesley13
3年前
FMDB源码阅读(二)
随笔31文章0评论101【原】FMDB源码阅读(二)阅读目录1.前言2.executeUpdate:系列函数3.executeStatements:系列函数4.executeQueryWithFormat:和executeUpdateWithFormat:函数5.(void)bindObje
Easter79 Easter79
3年前
SpringRequestContext源码阅读
Spring源码关于RequestContext相关信息获取事件监听器的相关代码实现publicclassRequestContextListenerimplementsServletRequestListener{
Stella981 Stella981
3年前
Golang 网络编程
目录TCP网络编程UDP网络编程Http网络编程理解函数是一等公民HttpServer源码阅读注册路由启动服务处理请求HttpClient源码阅读DemoCode整理思路重要的struct
Stella981 Stella981
3年前
Android项目实战系列—基于博学谷(三)注册与登录模块
!image(https://www.cztcms.cn/wpcontent/uploads/2020/03/%E5%8D%9A%E5%AD%A6%E8%B0%B7.png)由于这个模块内容较多,篇幅较长,请耐心阅读。注册与登录模块分为三个部分\x\欢迎界面\x\注册界面\