首頁 > php框架 > ThinkPHP > 主體

ThinkPHP之不研究源碼你怎麼會知道env檔的作用

咔咔
發布: 2020-10-09 16:06:58
原創
1851 人瀏覽過

本文主要介紹了框架使用env檔案去載入其它類型設定文件,之前有一文介紹的是工廠模式載入設定檔。

九、如何讓框架載入其它類型的設定檔使用env檔

在初始化應用和模組中有一個屬性是configExt,這個屬性就是檔案的擴充

ThinkPHP之不研究源碼你怎麼會知道env檔的作用去找這個屬性是在哪裡設定的。

根據config設定檔載入流程,可以很清楚的看到init方法的上一層是初始化應用,也就是initialize方法。

那麼這個屬性肯定是在init方法之前就已經提前設定好了的。

回到init方法的上一層initialize就直接可以看到這個值的設定。

ThinkPHP之不研究源碼你怎麼會知道env檔的作用
在這裡插入圖片描述

這個值是從env的環境變數中取得的,如果沒有則預設為php,所以就需要建立一個env的文件。

並且給一個預設值為yaml

ThinkPHP之不研究源碼你怎麼會知道env檔的作用這裡給大家看一下變化,在5.1.34 LTS版本的時候存在一個bug,咔咔目前使用的是5.1.39 LTS  這個問題已經修復了。

這段程式碼相信都可以看出來,它是先對configExt進行了設定預設值,然後在去載入環境變數設定檔。

那麼載入這個環境變數的這段程式碼就毫無任何意義,configExt的值永遠都是.php

就算在env檔案裡邊做了設定也不會取得。

ThinkPHP之不研究源碼你怎麼會知道env檔的作用在先前在config設定檔中加入了一個yaml的設定檔

ThinkPHP之不研究源碼你怎麼會知道env檔的作用那麼這個時候就可以使用config類別來取得yaml類型檔案的設定了。

測試一下沒有任何問題,資料是可以出來的。

但是實際專案中可不敢這麼整啊!如果要把configExt這個值設定到環境變量,設定的是什麼型別就需要把config目錄下的所有設定檔全部轉換成對應類型。

例如configExt設定的為.ini ,則需要把config目錄下的所有檔案改為ini檔案形式

ThinkPHP之不研究源碼你怎麼會知道env檔的作用ThinkPHP之不研究源碼你怎麼會知道env檔的作用這塊內容只是針對閱讀原始碼後一個運用而已,實際專案中不要這樣使用,因為在tp框架中所有的設定檔都是PHP類型的。

如果改為它類型的話,就需要修改框架中所有的配置文件,這種事情能不​​干就不哈!

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是喀喀,下期見。

#

以上是ThinkPHP之不研究源碼你怎麼會知道env檔的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!