本文主要介紹了框架使用env檔案去載入其它型別組態檔,之前有一文介紹的是工廠模式載入組態檔。
在初始化應用和模組中有一個屬性是configExt,這個屬性就是檔案的擴充套件
去找一下這個屬性是在哪裡設定的。
根據config組態檔載入流程,可以很清晰的看到init
方法的上一層是初始化應用,也就是initialize
方法。
那麼這個屬性肯定是在init
方法之前就已經提前設定好了的。
返回到init
方法的上一層initialize
就直接可以看到這個值的設定。
這個值是從env的環境變數中獲取的,如果沒有則預設為php,所以就需要建立一個env的檔案。
並且給一個預設值為yaml
這裡給大家看一下變化,在5.1.34 LTS版本的時候存在一個bug,咔咔目前使用的是5.1.39 LTS 這個問題已經修復了。
這段程式碼相信都可以看出來,它是先對configExt進行了設定預設值,然後在去載入環境變陣列態檔。
那麼載入這個環境變數的這段程式碼就毫無任何意義,configExt的值永遠都是.php
就算在env檔案裡邊做了設定也不會獲取得到。
在之前在config組態檔中新增了一個yaml的組態檔
那麼這個時候就可以使用config類來獲取yaml型別檔案的設定了。
測試一下沒有任何問題,資料是可以出來的。
但是實際專案中可不敢這麼整啊!如果要把configExt
這個值設定到環境變數,設定的是什麼型別就需要把config目錄下的所有組態檔全部轉化為對應型別。
例如configExt設定的為.ini ,則就需要把config目錄下的所有檔案都改為ini檔案形式
這塊內容只是針對閱讀原始碼後一個運用而已,實際專案中不要這樣使用,因為在tp框架中所有的組態檔都是PHP型別的。
如果改為其它型別的話,就需要修改框架中所有的組態檔,這種事情能不幹就不哈!
堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大網際網路中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。
以上就是ThinkPHP之不研究原始碼你怎麼會知道env檔案的作用的詳細內容,更多請關注TW511.COM其它相關文章!