laravel框架里.env文件與config目錄下配置文件關系

可能許多童鞋和我一樣,在看文檔時被.env文件和config目錄里的配置文件搞混亂了,它們之間到底什么關系。今天,我們一起看看它們之前的關系吧。

.env文件與config目錄配置文件關系

首先,文檔里說laravel所有配置文件都保存在config目錄的文件中。那么根目錄下的.env文件到底是干嘛的呢?我們打開看下.env文件以及config/app.php這兩個文件

#?.env文件 APP_NAME=laravel ……???? #?app.php文件 'name'?=>?env('APP_NAME',?'Larave'),

看到這,我基本可以猜測出來大致意思了:如果config目錄下的配置文件配置項使用了env函數,那么如果.env文件中配置了該選項,則使用.env文件里的值,否則使用配置文件設置的默認值

接下來,來驗證我的猜測。首先寫下測試代碼:

return?config('app.name');

接著,將.env文件的APP_NAME修改為boy,app.php文件里的默認值修改為girl

APP_NAME=boy …… 'name'?=>?env('APP_NAME',?'girl'),

發現一個有趣的問題,測試代碼返回的結果還是Laravel。然后,我重啟了下php artisan serve,然后再刷新才出現結果為boy。這樣就驗證了我的猜測是對的,但有引出另一個推測:如果用到的配置值在.env文件里,那么修改.env文件里的值不會立即有效,必須重啟才會有效

為了驗證我的另一個猜測,我將.env里的APP_NAME那行給刪除了,然后重啟。測試的返回結果是girl。接著,我將girl修改為girl1,然后刷新瀏覽器,返回值是girl1。所以我的結論驗證的正確的。

這里總結下:

  • 如果config目錄下的配置文件配置項使用了env函數,那么如果.env文件中配置了該選項,則使用.env文件里的值,否則使用配置文件設置的默認值

  • 如果用到的配置值在.env文件里,那么修改.env文件里的值不會立即有效,必須重啟php artisan serve才會有效

以上就是

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