環境變量,顧名思義就是在不同的系統環境,同一個變量的值可以有所不同。
如開發環境、測試環境與正式環境下,資料庫配置、靜态資源檔案Url字首、緩存、各種key等配置都不相同,對于送出到倉庫中的代碼,理論上不應該将與環境相關的這些參數傳進去。但怎樣實作有所區分,各自維護呢?沒有經曆過團隊協作開發和利用工具自動化部署代碼的人應該不會了解其中的小痛苦。環境變量就是一個比較好的實作方式了。
TP的v5中利用PHP對環境變量的讀取以及模拟環境變量的支援,可以很好的實作這種需求。
在開發過程中,可以在應用根目錄下面的.env來模拟環境變量配置,.env檔案中的配置參數定義格式采用ini方式,例如:
如果你的部署環境單獨配置了環境變量,那麼請删除.env配置檔案,避免沖突。
使用下劃線分割定義配置參數名:
或者使用
擷取環境變量的值可以使用下面的兩種方式擷取:
可以支援預設值,例如:
可以直接在應用配置中使用環境變量,例如:
環境變量中設定的app_debug和app_trace參數會自動生效(優先于應用的配置檔案),其它參數則必須通過Env::get方法才能讀取。
環境變量的配置方法在此不詳述了。