ThinkPHP之不研究源碼你怎么會知道env文件的作用

本文主要介紹了框架使用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類型的。

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

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

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享