1、簡介
Laravel 的所有配置文件都存放在 config 目錄下,每個配置項都有註釋,以保證瀏覽任意配置文件的配置項都能直觀了解該配置項的作用及用法。
2、存取設定值
你可以使用全域輔助函數config 在應用程式的任意位置存取設定值,該設定值可以檔案名稱+「.」+設定項的方式進行訪問,當設定項沒有被配置的時候回傳預設值:
$value = config('app.timezone');
如果要在執行時間設定組態值,傳遞陣列參數到config 方法即可:
config(['app.timezone ' => 'America/Chicago']);
3、環境配置
基於應用運行的環境不同設定不同的配置值能夠為我們開發帶來極大的方便,例如,我們通常在本地和線上環境配置不同的快取驅動,此機制在Laravel 中很容易實現。
Laravel 使用Vance Lucas 開發的PHP 庫DotEnv 來實現這一機制,在新安裝的Laravel 中,根目錄下有一個.env.example 文件,如果Laravel 是透過Composer 安裝的,那麼該文件已經被重命名為.env,否則的話你要自己手動重命名該檔案。
取得環境變數配置值
在應用每次接受請求時,.env 中列出的所有配置及其值都會被載入到PHP 超全域變數$_ENV 中,然後你就可以在應用程式中透過輔助函數env 來取得這些配置值。實際上,如果你去查看Laravel 的配置文件,你會發現很多地方已經在使用這個輔助函數了:
'debug' => env('APP_DEBUG', false),
傳遞到env 函數的第二個參數是預設值,如果環境變數沒有被配置將會是個該預設值。
不要把 .env 檔案提交到原始碼控制(svn 或 git 等)中,因為每個使用你的應用程式的開發者/伺服器可能要求不同的環境配置。
如果你是在一個團隊中進行開發,你需要將.env.example 文件隨你的應用一起提交到源碼控制中:將一些配置值以佔位符的方式放置在.env.example 文件中,這樣其他開發者就會很清楚執行你的應用程式需要配置哪些環境變數。
判斷當前應用環境
當前應用環境由.env 檔案中的APP_ENV 變數決定,你可以透過App 門面的environment 方法來存取其值:
$environment = App::environment();
if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
應用程式一旦上線,就要執行一次 php artisan config:cache,但是在本機開發時,沒必要經常執行該指令,因為設定值經常需要改變。
5、維護模式
當你的應用程式處於維護模式時,所有對應用程式的請求都會傳回同一個自訂視圖。這項機制在對應用程式進行升級或維護時,使得「關閉」網站變得輕而易舉。維護模式的判斷程式碼位於套用預設的中間件堆疊中,如果套用處於維護模式,則狀態碼為 503 的 MaintenanceModeException 將會被拋出。
php artisan down
php art.
當你的網站處於維護模式時,所有的佇列任務都不會執行;當應用程式退出維護模式這些任務才會繼續正常處理。
維護模式的替代方案
由於維護模式命令的執行需要幾秒時間,你可以考慮使用 Envoyer 實現 0 秒下線作為替代方案。
更多Laravel 5.3 學習筆記之 配置相關文章請關注PHP中文網!