Laravel5 での環境変数のロード
カーネルで見つかる最初のスタートアップ項目は ENV についてです
1 |
|
IlluminateFoundationBootstrapDetectEnvironment このクラスから開始し、検索を入力すると、
1 |
|
具体的なメソッドは Dotenv A静的ロード メソッドであり、読み取りが失敗した場合は、デフォルトで「production」に設定されます
ここでは、load によって渡される 2 つのパラメーターが、読み取りファイル $app->environmentFile の場所を見つけるためのものであることがわかります。 () はファイル名 ($app->environmentFile) を返します。デフォルトは .env です。 $app にはメソッドがあります:
1 |
|
このメソッドを使用すると、ロードされた env ファイルの名前を変更できます。
Dotenv::load メソッドは、最初にファイル is_readable と is_file を決定します。それ以外の場合は、例外がスローされます。 ini_get、ini_set は auto_detect_line_endings を 1 に設定し、その後、元の値に設定します。
1 |
|
ファイルの各行を読み取り、foreach を走査して、環境変数を設定します。ここでは NestedVariable がサポートされていることがわかります。これは、シェルと同様に、$(VAR_EXISTS) を使用して設定変数の値を読み取ることができることを意味します。
Set 変数は putevn()、$_ENV、$_SERVER の 3 つの場所に存在し、キーが繰り返されているかどうかを判断し、繰り返されている場合はスキップします。
読み取るときも、getenv()、$_ENV、$_SERVER の 3 つの場所から読み取ります。
public 関数environmentFile() はデフォルトで '.env' を返します
public function experience() はパラメータをとらず、パラメータ (配列) を受け取る場合は現在の環境の値を返します。をトラバースして比較し、現在の環境名が含まれている場合は true を返します
public function isLocal() $app['env'] は 'local' と等しい
public function afterLoadingEnvironment(Closure $callback)
public function detectEnvironment(Closure $callback)