HOME>WEBプログラム覚書>[Laravel]config/* ファイルと.env、config()

[Laravel]config/* ファイルと.env、config()

Laravelのconfig/と.envについてよくわかんなかったので。

config/ 以下のファイルはenv()関数を使って.envの内容を読み込んでいる。 .envは環境ごとに設定内容が異なるのでアプリケーションではconfig()関数を使って config/の内容を読み込むのがよい。

.env

  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306
  4. DB_DATABASE=laravel
  5. DB_USERNAME=root
  6. DB_PASSWORD=

config/database.php

  1. 'mysql' => [
  2.     'driver' => 'mysql',
  3.     'url' => env('DATABASE_URL'),
  4.     'host' => env('DB_HOST', '127.0.0.1'),
  5.     'port' => env('DB_PORT', '3306'),
  6.     'database' => env('DB_DATABASE', 'forge'),
  7.     'username' => env('DB_USERNAME', 'forge'),
  8.     'password' => env('DB_PASSWORD', ''),
  9.     // 省略
  10. ],

って設定の場合、

  1. var_dump(env('DB_DATABASE'));//string(7) "laravel"
  2. var_dump(config('database')['connections']['mysql']['database']);// string(7) "laravel"

となる。

.env

  1. DB_DATABASE=

の場合、空で設定される。

  1. var_dump(env('DB_DATABASE'));//string(0) ""
  2. var_dump(config('database')['connections']['mysql']['database']);//string(0) ""

.env に項目がない場合

.env

  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306
  4.  
  5. DB_USERNAME=root
  6. DB_PASSWORD=

env()2番目の引数のデフォルト値が設定される。

  1. var_dump(env('DB_DATABASE'));// NULL
  2. var_dump(config('database')['connections']['mysql']['database']);// string(5) "forge"

.envファイルが存在しない場合500サーバーエラーとなる。

config/以下のファイルの.env()のデフォルト値は本番環境の設定を書いておいて 本番環境の.envには内容があまりないようにしておくのが良さそう?

投稿日 2019年12月 2日 06:17
カテゴリ PHP
タグ Laravel
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1804

コメント

コメントする
Name
Email Address
URL