本文主要針對Config的原始碼進行簡單的執行解析,從圖解到程式碼希望你有更深的理解。上文提到的yaconf就是在這裡體現的,每一篇文章都是為了給後邊做鋪墊。
#說上面的Yaconf對於config的原始碼解析沒有多大的幫助,但是也是在擴寬一下思路,以後在工作中可以嘗試使用Yaconf。
進入正題,想知道Config是怎麼進行載入解析的,先來畫一個圖。一起看一下載入config的執行流程。
回到public/index.php
,在上一期說了類別的自動載入是在載入base.php檔案的過程中執行的。
那麼config的載入就是在下圖框起來的這裡,這裡牽涉到了容器,會有一個單獨的專題來對容器進行剖析。
這裡就不太說明了,這段程式碼回去執行`D:\phpstudy_pro\WWW\ThinkPHPSourceCodeAnalysis\thinkphp\library\think\App.php這個檔案的run方法。
並且在run
方法中需要追蹤的是initialize
應用初始化這個函數
接著在initialize
這個方法中就會看到設定檔的蛛絲馬跡,隨之而來就是一個初始化應用init
直到走到init方法中,才算是進入了主題。
開始了自動載入設定文件,也呼叫了config類別中的load方法,也是需要一起閱讀的。
#來到這裡之後需要簡單的進行解讀一下
這段程式碼會直接走到elseif中,因為在app目錄下沒有設定config目錄
#並且這裡有configPath這個屬性熟悉吧!這個值最終就是D:\phpstudy_pro\WWW\ThinkPHPSourceCodeAnalysis\config\
在接這就是把config目錄下的檔案全部拿出來。
傳遞給config類別的load方法
在這裡有幾個知識點提一下,就當回顧了
在這段程式碼中有一個屬性configExt,這個值是在環境變數讀出來的,給的值是php
堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是喀喀,下期見。
以上是ThinkPHP之配置源碼執行流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!