Thinkphp底层源码分析

Thinkphp底层源码分析第一章

首先我们学习此章节的内容大家可能需要有一些基础才行,接着对PHP内置字符窜数组相关函数会用的比较多一点,当然不太熟悉的朋友,其实可以借助手册看下去。下面我们开始正题:
实际上我们知道,thinkPHP5从一开始最先执行的入口文件为 public下面的index.php,跟以往的TP3有所不同,官网给的友情提示是为了安全起见。那么接下来我们先分析public目录下的index.php入口文件,如图所示:
在这里插入图片描述

A:定义了一个常量,这里的作用我们会在后面讲到。
B:在首次打开此文件时加载了一个同级目录下的,thinkphp文件夹中的start.php。我们先 看一下这个thinkphp文件整体结构。
在这里插入图片描述

这三个文件夹里面存放的东西分别是,字符格式,thinkphp库,以及模板样式(这里放的是一些内置跳转 默认首页的样式),所以以后大家想要改掉一些样式可以在这里动刀。我们接着来看star.php文件。
在这里插入图片描述

  这里我们看到文件第一步加载了同级目录下base.php。

B:静态调用执行了一个run方法 。那么我们就知道这个方法有可能就在base.php文件中, 接下来我们去看。下图为base.php的内容:
在这里插入图片描述

下面是他们分别的解释:
A:这里定义版本常量,具体作用是在命令行执行输出版本信息时会用到
B:定义THINK_START_TIME常量,microtime函数是PHP内置的,获取当前时间戳,可以到微秒,如果给定TRUE值,将会返回一个浮点数,这里作用可能是记录日志等作用吧。
C:定义THINK_START_MEM常量,memory_get_usage函数是获取内存使用的。如果设 置为 TRUE,获取系统分配的真实内存尺寸。如果未设置或者设置为 FALSE,将是 emalloc() 报告使用的内存量。这里大概是会在内置的trace那个东西中用到吧。
D:这里定义文件格式后缀
E:定义文件分隔符,window下面跟Linux下面斜杠不同,DIRECTORY_SEPARATOR是 PHP内置常量(显示系统分隔符)
F:检测是否存在 否则定义框架路径常量,也就是这里的thinkphp文件的路径,紧跟分隔符 常量DS,因为框架很可能不一定在window下运行,比如Linux的服务器。
G:定义库文件常量 注意一下这里路径后都有斜杠,这样做的好处是为了方便,如果一个加 一个不加,到最后可能自己也记不清到底加没加斜杠了,所以这里作者统一都加了斜 杠。
H:定义核心路径常量
I: 定义trait常量
J:定义应用目录常量 此处在再项目入口文件出已经定义了一次 后面只是为了以防没有定 义,用内置变量获取再加入分隔符
K:定义根目录常量这里也就是WWW环境下的路径
L:定义extend扩展目录常量
M:定义vendor常量 也就是composer载入的那个文件夹
N:定义runtime缓存目录常量
O:定义日志常量
P: 定义配置缓存常量
R:定义配置文件常量 这里其实在又是我们需要动态改变一定的配置 比如说验证码我在某个 地方需要配置成5个数字 而其他地方我又不想要(所以通过这常量就可以实现动态配置 了)
S:配置文件后缀常量
T: 环境变量前缀常量
接着我们需要注意star.php中的namespace命名空间 这里指的是thinkphp\library\think目录处。
所以我们再回到start.php文件处,第二个东西APP::run()想必大家都明白了吧,他这里执行了thinkphp\library\think下的App.php文件中的run方法来初始化框架,不知道大家是否还记得整个项目的是可以配置多入口文件的,我们可以指定admin.php访问到后台也是在这个App.php文件中实现的。我们再回到base.php文件中,我们接着分析,在最后使用了两个方法,如下图:
在这里插入图片描述

这个配置文件实际就是在同star.php base.php的convertion.php文件,再通过调用thinkphp\library\think目录下的config.php类中的set方法实现的配置。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43875836

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值