W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
因 .env
不會被納入版本控制器中,所以本地 .env
里添加變量時 必須 同步到 .env.example
中,以免影響其他項(xiàng)目參與者的工作。
假如項(xiàng)目中需要『CDN 域名』的變量,在 Laravel 中有以下幾種選項(xiàng):
config/app.php
文件中。 —— ? 無法區(qū)分環(huán)境進(jìn)行配置.env
文件中,使用 env()
方法直接讀取。 -—— ? 雖然解決了環(huán)境變量問題但是不推薦.env
和 config/app.php
文件中,然后使用 config()
函數(shù)來讀取?!?? 最佳實(shí)踐config/app.php
中調(diào)用即可,不需要動到任何一行業(yè)務(wù)邏輯代碼。另外,有一種必須使用第四種方案的場景。Laravel 帶了一個 config:cache
的命令,可以用來提高配置的加載速度。這種場景,是絕對不能在業(yè)務(wù)代碼中使用 env()
方法,會獲取不到內(nèi)容。
.env
文件中設(shè)置:
CDN_DOMAIN=cdn.domain.com
config/app.php
文件中設(shè)置:
'cdn_domain' => env('CDN_DOMAIN', null),
程序中兩種獲取 相同配置
的方法:
env('CDN_DOMAIN')
config('app.cdn_domain')
在此統(tǒng)一規(guī)定:所有程序配置信息 必須 通過 config()
來讀取,所有的 .env
配置信息 必須 通過 env()
來讀取,絕不 在配置文件以外的范圍使用 env()
。
這樣做主要有以下幾個優(yōu)勢:
config()
是配置信息,env()
只是用來區(qū)分不同環(huán)境;config
中還可以利用框架的 配置信息緩存功能 來提高運(yùn)行效率;config()
在 env()
之上多出來一個抽象層,會使代碼更加健壯,更加靈活。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: