久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      ThinkPHP配置文件加載流程

      ?

      終于來(lái)到了正題,本文會(huì)對(duì)config配置文件加載過(guò)程進(jìn)行解析,之前的所有工作都是為了本節(jié)工作做鋪墊

      ?

      雖說(shuō)上面的Yaconf對(duì)于config的源碼解析沒(méi)有多大的幫助,但是也是在擴(kuò)寬一下思路,以后在工作中可以嘗試使用Yaconf。

      進(jìn)入正題,想知道Config是怎么進(jìn)行加載解析的,先來(lái)畫(huà)一個(gè)圖。一起看一下加載config的執(zhí)行流程。

      ThinkPHP配置文件加載流程
      在這里插入圖片描述

      回到public/index.php,在上一期說(shuō)了類(lèi)的自動(dòng)加載是在加載base.php文件的過(guò)程中執(zhí)行的。

      那么config的加載是在下圖框起來(lái)的這里,這里涉及到了容器,會(huì)有一個(gè)單獨(dú)的專(zhuān)題來(lái)對(duì)容器進(jìn)行剖析。

      這里就不過(guò)多說(shuō)明了,這段代碼回去執(zhí)行`D:phpstudy_proWWWThinkPHPSourceCodeAnalysisthinkphplibrarythinkApp.php這個(gè)文件的run方法。

      ThinkPHP配置文件加載流程并且在run方法中需要追蹤的是initialize應(yīng)用初始化這個(gè)函數(shù)

      ThinkPHP配置文件加載流程接著在initialize這個(gè)方法中就會(huì)看到配置文件的蛛絲馬跡,隨之而來(lái)就是一個(gè)初始化應(yīng)用init

      ThinkPHP配置文件加載流程直到走到init方法中,才算是進(jìn)入了主題。

      開(kāi)始了自動(dòng)加載配置文件,并且還調(diào)用了config類(lèi)中的load方法,也是需要一起閱讀的。

      ThinkPHP配置文件加載流程來(lái)到這里之后需要簡(jiǎn)單的進(jìn)行解讀一下

      這段代碼會(huì)直接走到elseif中,因?yàn)樵赼pp目錄下沒(méi)有設(shè)置config目錄

      并且這里有個(gè)configPath這個(gè)屬性熟悉吧!這個(gè)值最終就是D:phpstudy_proWWWThinkPHPSourceCodeAnalysisconfig

      ThinkPHP配置文件加載流程在接這就是把config目錄下的文件全部拿出來(lái)。

      傳遞給config類(lèi)的load方法

      在這里有幾個(gè)知識(shí)點(diǎn)提一下,就當(dāng)回顧了

      • scandir :以升序的方式返回一個(gè)目錄下的所有文件,還有第二個(gè)參數(shù)1,表示降序的方式返回一個(gè)目錄下的所有文件。
      • pathinfo:以數(shù)組的形式返回文件信息,分別為目錄名、文件名、擴(kuò)展名,其中的幾個(gè)參數(shù)代碼中有提到,可以看下圖即可。

      在這段代碼中有一個(gè)屬性configExt,這個(gè)值是在環(huán)境變量讀出來(lái)的,給的值是php

      ThinkPHP配置文件加載流程緊接著就需要來(lái)到thinkphp/library/think/Config.php這個(gè)文件了,在app文件中最后調(diào)用了config類(lèi)中的load。

      一起來(lái)看看都經(jīng)歷了什么

      在load這個(gè)方法中,流程的最終走向會(huì)到loadFile這個(gè)方法中,至于elseif的代碼為什么不會(huì)走,或者說(shuō)這段代碼就是多余的。

      因?yàn)楫?dāng)Yaconf安裝后在PHP啟動(dòng)后就會(huì)直接去加載對(duì)應(yīng)的配置文件

      ThinkPHP配置文件加載流程來(lái)到loadFile這個(gè)文件后

      我們都知道在ThinkPHP框架中,config目錄下的所有文件都是PHP類(lèi)型的

      所以在判斷了類(lèi)型后就直接進(jìn)入到set里邊進(jìn)行數(shù)據(jù)的處理

      include直接引入的就是config目錄下的配置文件,并且所有的配置文件都是直接return返回一個(gè)數(shù)組

      ThinkPHP配置文件加載流程在set方法中,這塊代碼就是核心了

      一直循環(huán)合并數(shù)組,最終把所有的配置信息都返回給了config這個(gè)屬性

      截止到這里config目錄下的所有配置就加載完成了。

      ThinkPHP配置文件加載流程

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)