❝在之前閱讀到框架載入原始碼的過程中,看框架原始碼存在以下問題,於是咔咔就手動的進行了一次簡單的優化,可以看看思路哈!不建議大家直接去做更改哈!
❞
在thinkphp/library/think/Config.php
中方法loadFile這裡看起來是不是有點不太優雅了。
既然在方法最後使用parse
方法,也就是之前提到的工廠模式載入其它型別的組態檔。
那麼為何不讓這個工廠模式也載入PHP和yaml型別的組態檔。
此時就需要在thinkphp/library/think/config/driver
這個目錄建立php檔案和yaml檔案了。
首先建立一個php檔案。
並且仿照其它三個型別檔案,在php檔案型別中只需要判斷是否為檔案,然後把檔案引入進來即可。
在框架中PHP型別的組態檔都是陣列形式的,所以在Php.php檔案中parse方法直接返回config屬性即可。
開始開心的測試吧!之前在env的檔案中設定了CONFIG_EXT這個值為yaml。
也就是說讀取config目錄下的組態檔時,只能讀取擴充套件為yaml型別的檔案。
所以需要先把這個值給改回來,等後面把yaml型別的工廠類寫好之後就可以使用了。
為了測試方便在config目錄下新增一個新的設定
然後把config類中的lodeFile方法中判斷php和yaml型別的程式碼註釋掉
在控制器讀取config/app.php設定
列印結果
列印出來的結果沒有任何瑕疵,也就說我們進行簡單優化的程式碼並沒有不適之處。至於yaml也是一樣的道理,只需要把最終的資料轉為陣列返回就行了。
以上就是咔咔對框架組態檔載入底層原始碼優化的解析過程,如有不適之處,可以評論區指出來。
❝堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大網際網路中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。
❞
以上就是記錄一次優化thinkphp框架原始碼的過程的詳細內容,更多請關注TW511.COM其它相關文章!