laravel 基礎(chǔ)教程 —— 配置

laravel基礎(chǔ)教程 —— 配置

所有配置文件都被保存在config目錄下墙基,并且每個(gè)配置文件里的配置項(xiàng)都有文檔標(biāo)注晒夹。

訪問配置值

config 全局幫助方法被提供在vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 文件中炎辨,該函數(shù)允許使用 . 語(yǔ)法來(lái)獲取文件內(nèi)的配置項(xiàng)值尼啡。

$value = config('app.timezone');

你也可以在config函數(shù)傳遞第二個(gè)參數(shù)作為默認(rèn)值呜投,當(dāng)找不到該配置項(xiàng)時(shí)返回默認(rèn)值.

$value = config('app.timezone', 'Asia/Shanghai');

設(shè)置配置項(xiàng)的值:

config(['app.timezone' => 'Asia/Shanghai']);

環(huán)境配置

我們經(jīng)常希望開發(fā)環(huán)境和生產(chǎn)環(huán)境具有不同的配置锦茁。比如說你在本地開發(fā)環(huán)境使用不同的緩存驅(qū)動(dòng),而laravel基于環(huán)境的配置使之非常容易洞辣。

laravel使用了DotEnv類庫(kù)來(lái)構(gòu)建基于環(huán)境的配置咐刨,默認(rèn)的基于環(huán)境的配置信息在根目錄下的.env文件中,如果你是通過composer的方式安裝的laravel扬霜,那么它會(huì)自動(dòng)的將.env.example文件復(fù)制并重命名為.env, 如果不是你則需要手動(dòng)做了定鸟。如果你每增加一個(gè)基于環(huán)境的配置項(xiàng),你最好在.env.example中增加相同的配置項(xiàng)著瓶,這樣在多人協(xié)作中別人可以根據(jù).env.example理解你的配置信息.

每當(dāng)程序接收到request請(qǐng)求時(shí)联予,應(yīng)用程序會(huì)自動(dòng)裝載.env文件,并將配置信息封裝在全局變量$_ENV中材原,當(dāng)然你也可以通過全局輔助函數(shù)env()來(lái)進(jìn)行獲取環(huán)境配置項(xiàng)信息并將其設(shè)置在你的其它配置文件中沸久,事實(shí)上,laravel已經(jīng)在部分配置文件中使用這種這種方式進(jìn)行配置华糖。

'debug' => env('APP_DEBUG', false),

env函數(shù)中的第二個(gè)參數(shù)為配置項(xiàng)的默認(rèn)值麦向,當(dāng)環(huán)境配置文件.env中沒有該配置項(xiàng)時(shí)會(huì)自動(dòng)使用默認(rèn)值。

另外你的.env配置環(huán)境不應(yīng)該提交到版本控制器中客叉,因?yàn)槠渌?wù)器環(huán)境或者開發(fā)者環(huán)境可能需要引入不同的環(huán)境配置诵竭。比如生產(chǎn)環(huán)境不應(yīng)該開啟debug, 不同的開發(fā)者的本地?cái)?shù)據(jù)庫(kù)配置信息可能不同。

如果你是在一個(gè)團(tuán)隊(duì)中做開發(fā)兼搏,你應(yīng)該在.env.example文件中引入你增加的環(huán)境配置信息卵慰,并提交給其它開發(fā)者知道佛呻,這樣他們就能夠理解使用你開發(fā)的部分應(yīng)該引入哪些配置信息。

確定當(dāng)前環(huán)境

當(dāng)前環(huán)境是定義在.env文件中的APP_ENV變量里的吓著,你可以通過App facadeenvironment 函數(shù)來(lái)獲人吞簟:

$environment = App::environment();

當(dāng)然你也可以通過 全局方法 envapp 來(lái)獲取:

$environment = env('APP_ENV');
# or
$environment = app()->environment();

有時(shí)候我們需要特別識(shí)別一下當(dāng)前環(huán)境是哪種環(huán)境惕耕,并根據(jù)不同的環(huán)境執(zhí)行不同的業(yè)務(wù)邏輯,這時(shí)候就需要通過environment函數(shù)來(lái)進(jìn)行判斷匹配了诫肠,當(dāng)然你可以在其中傳遞一個(gè)或多個(gè)環(huán)境參數(shù),只要匹配到其中任何一個(gè)都會(huì)返回true:

if (App::environment('local')) {
  // if env('APP_ENV') === 'local'
}

if (App::environment('local', 'staging')) {
  // env('APP_ENV') === 'local' || env('APP_ENV') === 'staging'
}

緩存配置信息

config目錄下有很多配置文件栋豫,配置文件中有不同的配置信息,為了啟動(dòng)程序更為迅速丧鸯,我們可以在開發(fā)環(huán)境中將這些配置信息集中到一個(gè)配置文件中,這樣骡送,程序在被訪問時(shí)昂羡,不會(huì)每次都要加載N個(gè)文件了,我們可以通過artisanconfig:cache命令 來(lái)做這件事情摔踱。所有配置文件被整合在一個(gè)文件里并被程序自動(dòng)加載虐先。

當(dāng)然,在開發(fā)環(huán)境并不建議這么做派敷,因?yàn)殚_發(fā)環(huán)境我們可能會(huì)頻繁的更改配置信息蛹批,這樣為了使配置信息及時(shí)生效我們不得不頻繁的運(yùn)行 php artisan config:cache命令, 偶爾我們會(huì)忘記執(zhí)行命令篮愉。生產(chǎn)環(huán)境緩存配置文件應(yīng)該是常態(tài),并且應(yīng)該在版本發(fā)布時(shí)執(zhí)行緩存配置文件命令重新生成緩存配置信息腐芍。你應(yīng)該將其做為自動(dòng)發(fā)布的一部分。

維護(hù)模式

laravel提供了維護(hù)模式试躏,維護(hù)模式在開啟時(shí)猪勇,所有的訪問請(qǐng)求都會(huì)被返回某個(gè)視圖,這個(gè)視圖是可以自定義的颠蕴。如果維護(hù)模式開啟泣刹,則每個(gè)請(qǐng)求都會(huì)返回 503 狀態(tài)碼。
開啟維護(hù)模式的方法:

php artisan down

關(guān)閉維護(hù)模式的方法:

php artisan up

維護(hù)模式響應(yīng)模板

維護(hù)模式響應(yīng)的視圖模板存放在resources/views/errors/503.blade.php, 你可以自由的修改犀被。

維護(hù)模式 & 隊(duì)列

在維護(hù)模式開啟時(shí)椅您,隊(duì)列工作將會(huì)暫停執(zhí)行,當(dāng)維護(hù)模式關(guān)閉時(shí)寡键,隊(duì)列將繼續(xù)進(jìn)行處理工作掀泳。

備選方案到維護(hù)模式

由于開啟維護(hù)模式需要關(guān)閉應(yīng)用程序一段時(shí)間,所以你也許可以考慮像Envoyer這種不需要關(guān)閉應(yīng)用程序的持續(xù)集成服務(wù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末员舵,一起剝皮案震驚了整個(gè)濱河市脑沿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌马僻,老刑警劉巖捅伤,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異巫玻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)祠汇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門仍秤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人可很,你說我怎么就攤上這事诗力。” “怎么了我抠?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵苇本,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我菜拓,道長(zhǎng)瓣窄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任纳鼎,我火速辦了婚禮俺夕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劝贸。我一直安慰自己逗宁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布件甥。 她就那樣靜靜地躺著嚼蚀,像睡著了一般管挟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天守谓,我揣著相機(jī)與錄音斋荞,去河邊找鬼虐秦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜈彼,可吹牛的內(nèi)容都是我干的俺驶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼还绘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拍顷!你這毒婦竟也來(lái)了塘幅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤爱沟,失蹤者是張志新(化名)和其女友劉穎匆背,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體括享,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃辖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年娇斩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犬第。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歉嗓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鉴分,到底是詐尸還是另有隱情,我是刑警寧澤家浇,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站点额,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏还棱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一办铡、第九天 我趴在偏房一處隱蔽的房頂上張望寡具。 院中可真熱鬧稚补,春花似錦、人聲如沸课幕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撬碟。三九已至诞挨,卻和暖如春亭姥,著一層夾襖步出監(jiān)牢的瞬間顾稀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工粮揉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抚笔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓辐宾,卻偏偏與公主長(zhǎng)得像膨蛮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誉察,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理持偏,服務(wù)發(fā)現(xiàn)氨肌,斷路器,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,605評(píng)論 0 121
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,747評(píng)論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評(píng)論 6 342
  • 帶著孩子們共讀并且表演完童話劇后,我們進(jìn)行了一次更深層次的討論和思考附帽。這次,不再是關(guān)于童話里丑小鴨的討論蕉扮。而是...
    牽著蝸牛去旅行1閱讀 999評(píng)論 0 1