簡介
Laravel 框架的設定檔全部放在config/ 目錄。每個選項都有註解,建議打開檔案來看看可用的選項。
在設定檔中,可管理資料庫連線資訊、郵件伺服器資訊、應用程式 URL 與加密金鑰等各種核心設定值。
about 指令
透過 about Artisan 指令,可查看應用程式的設定、驅動、環境概要。
--only 選項。
config:show 指令。
環境設定(.env)
我們常常需要依執行環境切換設定值。例如在本機與正式環境使用不同的快取驅動。 Laravel 使用 DotEnv PHP 函式庫讓這件事變得簡單。新安裝時,應用程式根目錄會包含定義了常用環境變數的.env.example,並在安裝流程中自動複製為 .env。
在團隊開發時,建議一併更新
.env.example 並納入版本控制。設定佔位值可以讓其他開發者清楚知道需要哪些環境變數。環境檔案的安全性
不過,Laravel 內建了環境檔案加密功能,加密後的檔案可以安全地存放在版本控制中。額外的環境檔案
應用程式啟動時,Laravel 會檢查是否有指定APP_ENV 環境變數或 CLI 的 --env 參數。若有指定且 .env.[APP_ENV] 檔案存在則會讀取它,否則使用預設的 .env 檔案。
環境變數的型別
.env 檔案中的變數全部會被解析為字串,但為了讓 env() 函式能回傳更廣泛的型別,特別預留以下值。
要設定含空白的值請以雙引號包起來。
讀取環境變數
.env 檔案內的變數會在請求進來時載入到 $_ENV PHP 超全域變數。在設定檔中可透過 env() 函式取得值。
取得目前的環境
目前的環境是由.env 檔案的 APP_ENV 決定。可透過 App Facade 的 environment 方法取得。
加密環境檔案
未加密的環境檔案不應存放在版本控制,但 Laravel 提供了加密環境檔案的功能。.env 會被加密並存為 .env.encrypted。解密金鑰會顯示在指令輸出中,請妥善保存於安全的密碼管理工具。
如需解密,請使用 env:decrypt 指令。
存取設定值
可透過Config Facade 或全域 config() 函式,於應用程式任何位置存取設定值。使用「點記號」語法組合檔名與選項名。
Config::set() 或傳入陣列給 config()。
設定的快取
為提升應用程式效能,可將所有設定檔快取為單一檔案。.env 檔案將不再於框架處理請求或執行 Artisan 指令時載入。因此 env() 函式僅會回傳系統層級的環境變數。
要清除快取請使用 config:clear 指令。
發布設定檔
Laravel 大部分的設定檔已經發佈於config/ 目錄,但 cors.php 或 view.php 等部分檔案預設並未發佈。
若要發佈尚未發佈的設定檔,可以使用 config:publish 指令。
除錯模式
config/app.php 的 debug 選項決定要向使用者顯示多少錯誤資訊。此選項預設遵循 .env 檔案中 APP_DEBUG 環境變數。
維護模式
當應用程式處於維護模式時,所有請求會顯示自訂視圖。這讓你可以在更新或維護時暫時「停用」應用程式。啟用維護模式
--refresh 選項時,瀏覽器會於指定秒數後自動重新載入。
--retry 選項會作為 Retry-After HTTP 標頭的值。
略過維護模式
若想以秘密 token 允許特定使用者存取,可用--secret 選項。
--with-secret 選項時,Laravel 會自動產生 token。
多台伺服器的維護模式
預設情況下,Laravel 會以檔案為基礎管理維護模式。若為多台伺服器架構,建議使用快取版本。預先渲染維護視圖
若在部署過程中執行php artisan down,可能會有使用者在依賴更新期間看到錯誤畫面。可透過 --render 選項預先渲染視圖來避免。
停用維護模式
維護模式的預設樣板可透過建立
resources/views/errors/503.blade.php 進行自訂。下一步
路由
學習連結 URL 與控制器的路由基礎。