2017-06-14 68 views
0

我在一個應用程序上工作,我們的數據庫管理員已經要求生產數據庫證書對任何不是數據庫管理員或Web應用程序本身的人員都是不可訪問的。他建議我們創建另一個僅包含數據庫憑證的.env文件,以便他可以鎖定該文件。有沒有辦法做到這一點?基本上我們會從兩個.env文件讀取配置值。如何在Laravel中爲同一環境使用多個.env文件?

例如我們的應用程序配置文件可能看起來像

return [ 
    'some_configuration' => env1('SOME_CONFIGURATION'), 
] 

當數據庫配置文件可能看起來像

return [ 
    'database_password' => env2('DB_PASSWORD') 
] 

我怎樣才能讀取像這樣多個.ENV文件CONFIGS?

+0

你不只是有一個本地數據庫的發展? – Henry

+1

它在Laravel 5中被刪除。您可以使用外部程序包訪問類似的行爲,例如https://github.com/phanan/cascading-config。另外,你可以用'parse_ini_file'和'array_merge'這樣的東西來自己推出。 – bishop

+3

你可以通過'file_get_contents',即''database_password'=> file_get_contents('。secret_file')'從任意文件中獲取密碼,但是我在這裏值得懷疑。如果它可用於Web應用程序,它可以通過'php artisan tinker'或開發人員通過祕密路線或其他方式提供給開發人員。 – ceejayoz

回答

1

您最好的選擇可能會被通過file_get_contents使用任意文件,並獲取其內容:

return [ 
    'database_password' => trim(file_get_contents('.secret_file')) 
] 

(該trim是如果你的數據庫管理員離開流浪\n或空間或東西。)

相關問題