簡介
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:encrypt 指令。
.env 會被加密,加密後的內容會存到 .env.encrypted 檔案。解密金鑰會顯示在指令輸出中,請妥善保存於安全的密碼管理工具。
若要指定自己的加密金鑰,可使用 --key 選項。
所提供的金鑰長度必須與所使用的加密演算法要求的金鑰長度一致。預設會使用需要 32 字元金鑰的
AES-256-CBC。透過 --cipher 選項可以使用 加密 所支援的任何加密方式。.env 與 .env.staging,可透過 --env 選項指定要加密的環境名稱。
可讀的變數名稱
加密環境檔案時,使用--readable 選項可只加密值,並讓變數名稱保持可讀狀態。
env:decrypt 指令不需要額外的選項。
使用
--readable 選項時,原本環境檔案中的註解與空行不會包含在加密後的輸出中。更新可讀的加密檔案
更新可讀的加密環境檔案時,Laravel 會保留未變更的值不動,並移除原始環境檔案中已不存在的變數。--force 選項。可用於變更加密金鑰,或替換已失效的加密檔案。
解密
若要解密環境檔案,可使用env:decrypt 指令。此指令需要解密金鑰,Laravel 會從 LARAVEL_ENV_ENCRYPTION_KEY 環境變數取得。
--key 選項直接傳入金鑰。
env:decrypt 指令後,Laravel 會將 .env.encrypted 檔案的內容解密並寫入 .env 檔案。
若要使用自訂的加密演算法,可指定 --cipher 選項。
.env 與 .env.staging,可透過 --env 選項指定要解密的環境名稱。
--force 選項。
存取設定值
可透過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 與控制器的路由基礎。