Laravel 5.3 學(xué)習(xí)筆記之 配置
1、簡介
Laravel 的所有配置文件都存放在 config 目錄下,每個(gè)配置項(xiàng)都有注釋,以保證瀏覽任意配置文件的配置項(xiàng)都能直觀了解該配置項(xiàng)的作用及用法。
2、訪問配置值
你可以使用全局輔助函數(shù) config 在應(yīng)用的任意位置訪問配置值,該配置值可以文件名+“.”+配置項(xiàng)的方式進(jìn)行訪問,當(dāng)配置項(xiàng)沒有被配置的時(shí)候返回默認(rèn)值:
$value = config('app.timezone');
如果要在運(yùn)行時(shí)設(shè)置配置值,傳遞數(shù)組參數(shù)到 config 方法即可:
config(['app.timezone' => 'America/Chicago']);
3、環(huán)境配置
基于應(yīng)用運(yùn)行的環(huán)境不同設(shè)置不同的配置值能夠給我們開發(fā)帶來極大的方便,比如,我們通常在本地和線上環(huán)境配置不同的緩存驅(qū)動(dòng),這一機(jī)制在 Laravel 中很容易實(shí)現(xiàn)。
Laravel 使用 Vance Lucas 開發(fā)的 PHP 庫 DotEnv 來實(shí)現(xiàn)這一機(jī)制,在新安裝的 Laravel 中,根目錄下有一個(gè).env.example 文件,如果 Laravel 是通過 Composer 安裝的,那么該文件已經(jīng)被重命名為 .env,否則的話你要自己手動(dòng)重命名該文件。
獲取環(huán)境變量配置值
在應(yīng)用每次接受請求時(shí),.env 中列出的所有配置及其值都會(huì)被載入到 PHP 超全局變量 $_ENV 中,然后你就可以在應(yīng)用中通過輔助函數(shù) env 來獲取這些配置值。實(shí)際上,如果你去查看 Laravel 的配置文件,就會(huì)發(fā)現(xiàn)很多地方已經(jīng)在使用這個(gè)輔助函數(shù)了:
'debug' => env('APP_DEBUG', false),
傳遞到 env 函數(shù)的第二個(gè)參數(shù)是默認(rèn)值,如果環(huán)境變量沒有被配置將會(huì)是個(gè)該默認(rèn)值。
不要把 .env 文件提交到源碼控制(svn 或 git 等)中,因?yàn)槊總€(gè)使用你的應(yīng)用的開發(fā)者/服務(wù)器可能要求不同的環(huán)境配置。
如果你是在一個(gè)團(tuán)隊(duì)中進(jìn)行開發(fā),你需要將 .env.example 文件隨你的應(yīng)用一起提交到源碼控制中:將一些配置值以占位符的方式放置在 .env.example 文件中,這樣其他開發(fā)者就會(huì)很清楚運(yùn)行你的應(yīng)用需要配置哪些環(huán)境變量。
判斷當(dāng)前應(yīng)用環(huán)境
當(dāng)前應(yīng)用環(huán)境由 .env 文件中的 APP_ENV 變量決定,你可以通過 App 門面 的 environment 方法來訪問其值:
$environment = App::environment();
你也可以向 environment 方法中傳遞參數(shù)來判斷當(dāng)前環(huán)境是否匹配給定值,如果需要的話你甚至可以傳遞多個(gè)值。如果當(dāng)前環(huán)境與給定值匹配,該方法返回 true:
if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
應(yīng)用實(shí)例也可以通過輔助函數(shù) app 來訪問:
$environment = app()->environment();
4、配置緩存
為了給應(yīng)用加速,你可以使用 Artisan 命令 config:cache 將所有配置文件的配置緩存到單個(gè)文件里,這將會(huì)將所有配置選項(xiàng)合并到單個(gè)文件從而可以被框架快速加載。
應(yīng)用一旦上線,就要運(yùn)行一次 php artisan config:cache,但是在本地開發(fā)時(shí),沒必要經(jīng)常運(yùn)行該命令,因?yàn)榕渲弥到?jīng)常需要改變。
5、維護(hù)模式
當(dāng)你的應(yīng)用處于維護(hù)模式時(shí),所有對應(yīng)用的請求都會(huì)返回同一個(gè)自定義視圖。這一機(jī)制在對應(yīng)用進(jìn)行升級(jí)或者維護(hù)時(shí),使得“關(guān)閉”站點(diǎn)變得輕而易舉。對維護(hù)模式的判斷代碼位于應(yīng)用默認(rèn)的中間件棧中,如果應(yīng)用處于維護(hù)模式,則狀態(tài)碼為 503 的 MaintenanceModeException 將會(huì)被拋出。
要開啟維護(hù)模式,只需執(zhí)行 Artisan 命令 down 即可:
php artisan down
要關(guān)閉維護(hù)模式,對應(yīng)的 Artisan 命令是 up:
php artisan up
維護(hù)模式響應(yīng)模板
默認(rèn)的維護(hù)模式響應(yīng)視圖模板是 resources/views/errors/503.blade.php
維護(hù)模式 & 隊(duì)列
當(dāng)你的站點(diǎn)處于維護(hù)模式中時(shí),所有的隊(duì)列任務(wù)都不會(huì)執(zhí)行;當(dāng)應(yīng)用退出維護(hù)模式這些任務(wù)才會(huì)被繼續(xù)正常處理。
維護(hù)模式的替代方案
由于維護(hù)模式命令的執(zhí)行需要幾秒時(shí)間,你可以考慮使用 Envoyer 實(shí)現(xiàn) 0 秒下線作為替代方案。
相關(guān)文章
PHP替換Word中變量并導(dǎo)出PDF圖片的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于PHP替換Word中變量并導(dǎo)出PDF圖片的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別
這篇文章主要介紹了PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別,是深入學(xué)習(xí)PHP程序設(shè)計(jì)所必須掌握的概念,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09PHP實(shí)現(xiàn)文件分片上傳的實(shí)例代碼
在本篇文章里小編給大家整理的是一篇關(guān)于PHP實(shí)現(xiàn)文件分片上傳的實(shí)例代碼內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2020-01-01EarthLiveSharp中cloudinary的CDN圖片緩存自動(dòng)清理python腳本
這篇文章主要介紹了EarthLiveSharp暫時(shí)沒有清理cloudinary的CDN圖片緩存的功能,于是我用python寫了一個(gè),并嘗試用gist管理,需要的朋友可以參考下2017-04-04php中使用__autoload()自動(dòng)加載未定義類的實(shí)現(xiàn)代碼
當(dāng)PHP引擎遇到未實(shí)例化的類時(shí)就會(huì)觸發(fā)這個(gè)方法,當(dāng)然你的php代碼中要用到__autoload()才可以哦2013-02-02php更改目錄及子目錄下所有的文件后綴擴(kuò)展名的代碼
今天遇到要改變當(dāng)前目錄下指定類型的文件類型,本來想要用批處理來做這個(gè),結(jié)果沒找到合適。就自己去查了下資料,用Php來處理一下。2010-10-10php實(shí)現(xiàn)用手機(jī)關(guān)閉計(jì)算機(jī)(電腦)的方法
這篇文章主要介紹了php實(shí)現(xiàn)用手機(jī)關(guān)閉計(jì)算機(jī)(電腦)的方法,涉及php使用system方法調(diào)用系統(tǒng)命令的相關(guān)技巧,需要的朋友可以參考下2015-04-04PHP Header用于頁面跳轉(zhuǎn)時(shí)的幾個(gè)注意事項(xiàng)
大家都知道header函數(shù)中Location類型的標(biāo)頭是一種特殊的header調(diào)用,常用來實(shí)現(xiàn)頁面跳轉(zhuǎn),在新手剛學(xué)習(xí)的時(shí)候有些注意事項(xiàng)要注意,下面通過本文來詳細(xì)看看吧。2016-10-10php采集自中央氣象臺(tái)范圍覆蓋全國的天氣預(yù)報(bào)代碼實(shí)例
這篇文章主要介紹了php采集自中央氣象臺(tái)范圍覆蓋全國的天氣預(yù)報(bào)代碼實(shí)例,較為詳細(xì)的分析了采集的技巧及對應(yīng)接口的調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01