视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ThinkPHP之配置源码执行流程
2020-11-02 18:21:56 责编:小采
文档


本文主要针对Config的源码进行简单的执行解析,从图解到代码希望你有更深的理解。上文提到的yaconf就是在这里体现的,每一篇文章都是为了给后边做铺垫。

六、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

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

    下载本文
    显示全文
    专题