2016-06-20 36 views
3

在Laravel 4,您可以設置基於環境的config文件夾結構:Laravel 5環境配置數組?

/config/app.php 
/config/dev/app.php 
/config/staging/app.php 
/config/testing/app.php 

你能和Laravel 5做到這一點?我理解.env的概念,我用它來定義我在哪個環境。但是我需要定義一個配置值,它是一個任意長度的數組,你不能用.env文件來完成。

的我想要實現的一個例子:

if (in_array($request->input('value'), config('app.valid_values')) { 
    // do something 
} 

valid_values僅僅是值的數組。這是任意長度的,所以你不能將它們設置在.env文件,如:

VALID_VALUE1=... 
VALID_VALUE2=... 
etc. 

和陣列需要爲每個環境不同。

這在使用環境配置文件夾的Laravel 4中很容易實現。但是你如何用Laravel 5做到這一點?

+0

從Laravel 4升級到Laravel 5的未來讀者可能會對[Laravel Shift](https://laravelshift.com)感興趣。這是一項自動升級過程並根據您的特定項目提供自定義反饋的服務。 *免責聲明:我創建了Shift *。 –

回答

3

如果你需要創建值的數組,你可以創建字符串格式,當你需要,你可以解析它們

MY_ARRAY_VALUE=1,2,house,cat,34234 

當你需要他們

$myArrayValue = explode(',', env('MY_ARRAY_VALUE')); 

或保存你的價值觀在JSON,並讓他們與json_encode()

$myArrayValue = json_decode(env('MY_ARRAY_VALUE'), true); 

額外的信息:

在Laravel 5上,您需要在一個.env文件中翻譯所有配置文件。

在每個環境中,您的.env文件將與此環境的值不同。

要設置你的環境,你需要改變你.ENV文件

APP_ENV=local 

APP_ENV的價值,並可以在該文件中創建自己的變量

https://laravel.com/docs/5.2/configuration#environment-configuration

這是Laravel 5.0升級指南摘錄 https://laravel.com/docs/5.2/releases#laravel-5.0

Laravel 5不再使用各種令人困惑的嵌套環境配置目錄,而是使用Vance Lucas的DotEnv。該庫提供了一種超級簡單的方式來管理您的環境配置,並使Laravel 5中的環境檢測變得輕而易舉。有關更多詳細信息,請查看完整的配置文檔。

您可以在這裏找到一個默認的ENV文件:https://github.com/laravel/laravel/blob/master/.env.example

它往往是有幫助的基礎上,應用程序在運行的環境不同的配置值。例如,您可能希望使用。本地緩存驅動程序不同於您在生產服務器上的緩存驅動使用基於環境的配置很容易。

Laravel使用Vance Lucas提供的DotEnv PHP庫來做到這一點。在新的Laravel安裝中,應用程序的根目錄將包含一個.env.example文件。如果您通過Composer安裝Laravel,則該文件將自動重命名爲.env。否則,您應該手動重命名文件。

+0

我已更新我的問題 – Sangar82