可能許多童鞋跟我一樣,在看文件時被.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才會有效
以上是laravel框架裡.env檔與config目錄下設定檔關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!