最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

ThinkPHP配置文件加载流程

来源:懂视网 责编:小采 时间:2020-11-02 18:23:37
文档

ThinkPHP配置文件加载流程

ThinkPHP配置文件加载流程:终于来到了正题,本文会对config配置文件加载过程进行解析,之前的所有工作都是为了本节工作做铺垫虽说上面的Yaconf对于config的源码解析没有多大的帮助,但是也是在扩宽一下思路,以后在工作中可以尝试使用Yaconf。进入正题,想知道Config是怎么进
推荐度:
导读ThinkPHP配置文件加载流程:终于来到了正题,本文会对config配置文件加载过程进行解析,之前的所有工作都是为了本节工作做铺垫虽说上面的Yaconf对于config的源码解析没有多大的帮助,但是也是在扩宽一下思路,以后在工作中可以尝试使用Yaconf。进入正题,想知道Config是怎么进
?

终于来到了正题,本文会对config配置文件加载过程进行解析,之前的所有工作都是为了本节工作做铺垫

?

虽说上面的Yaconf对于config的源码解析没有多大的帮助,但是也是在扩宽一下思路,以后在工作中可以尝试使用Yaconf。

进入正题,想知道Config是怎么进行加载解析的,先来画一个图。一起看一下加载config的执行流程。

在这里插入图片描述
在这里插入图片描述

回到public/index.php,在上一期说了类的自动加载是在加载base.php文件的过程中执行的。

那么config的加载是在下图框起来的这里,这里涉及到了容器,会有一个单独的专题来对容器进行剖析。

这里就不过多说明了,这段代码回去执行`D:phpstudy_proWWWThinkPHPSourceCodeAnalysis hinkphplibrary hinkApp.php这个文件的run方法。

在这里插入图片描述并且在run方法中需要追踪的是initialize应用初始化这个函数

在这里插入图片描述接着在initialize这个方法中就会看到配置文件的蛛丝马迹,随之而来就是一个初始化应用init

在这里插入图片描述直到走到init方法中,才算是进入了主题。

开始了自动加载配置文件,并且还调用了config类中的load方法,也是需要一起阅读的。

在这里插入图片描述来到这里之后需要简单的进行解读一下

这段代码会直接走到elseif中,因为在app目录下没有设置config目录

并且这里有个configPath这个属性熟悉吧!这个值最终就是D:phpstudy_proWWWThinkPHPSourceCodeAnalysisconfig

在这里插入图片描述在接这就是把config目录下的文件全部拿出来。

传递给config类的load方法

在这里有几个知识点提一下,就当回顾了

  • scandir :以升序的方式返回一个目录下的所有文件,还有第二个参数1,表示降序的方式返回一个目录下的所有文件。
  • pathinfo:以数组的形式返回文件信息,分别为目录名、文件名、扩展名,其中的几个参数代码中有提到,可以看下图即可。
  • 在这段代码中有一个属性configExt,这个值是在环境变量读出来的,给的值是php

    在这里插入图片描述紧接着就需要来到thinkphp/library/think/Config.php这个文件了,在app文件中最后调用了config类中的load。

    一起来看看都经历了什么

    在load这个方法中,流程的最终走向会到loadFile这个方法中,至于elseif的代码为什么不会走,或者说这段代码就是多余的。

    因为当Yaconf安装后在PHP启动后就会直接去加载对应的配置文件

    在这里插入图片描述来到loadFile这个文件后

    我们都知道在ThinkPHP框架中,config目录下的所有文件都是PHP类型的

    所以在判断了类型后就直接进入到set里边进行数据的处理

    include直接引入的就是config目录下的配置文件,并且所有的配置文件都是直接return返回一个数组

    在这里插入图片描述在set方法中,这块代码就是核心了

    一直循环合并数组,最终把所有的配置信息都返回给了config这个属性

    截止到这里config目录下的所有配置就加载完成了。

    在这里插入图片描述以上就是config的加载流程,其实当你阅读完之后感觉也没有那么的难,就是编码技巧和思想。

    而我们阅读源码不是看它代码怎么写的,是学习的它的编码思想,最终落地到我们自己的项目中。

    ?

    坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。

    ?

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    ThinkPHP配置文件加载流程

    ThinkPHP配置文件加载流程:终于来到了正题,本文会对config配置文件加载过程进行解析,之前的所有工作都是为了本节工作做铺垫虽说上面的Yaconf对于config的源码解析没有多大的帮助,但是也是在扩宽一下思路,以后在工作中可以尝试使用Yaconf。进入正题,想知道Config是怎么进
    推荐度:
    标签: 文件 流程 加载
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top