2016-06-20 6 views
3

、あなたは環境ベースのconfigフォルダ構造を設定できますLaravel 5環境設定アレイですか? Laravel 4では

/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. 

ANDアレイは、環境ごとに異なることが必要です。

これは、環境設定フォルダを持つ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では、すべてのconfigファイルを1つの.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

関連する問題