LoginSignup
0
0

More than 1 year has passed since last update.

Laravel8 .envの値を使う注意点

Posted at

おっす、豚野郎です。

.envで設定した値をconfigを経由しないで取得する方法と、
configを経由して使う方法で取得する内容をサンプルコードと一緒に書いていきます。

1. configを経由しないパターン

以下のパターンで、envファイルに書かれた値は取得が可能です。

.env
TEST_ENV=TEST
routes/web.php
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ConfigController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', [ConfigController::class, 'index']);
app/Http/Controllers/ConfigController.php
<?php

namespace App\Http\Controllers;

class ConfigController extends Controller
{
    // フォーム
    public function index() {
        $env = env('TEST_ENV');
        dd($env);
    }
}

結果

"TEST"

2. configを経由する方法

config/envConfig.php
<?php
return [
    'test_env' => env('TEST_ENV'),
];
app/Http/Controllers/ConfigController.php
<?php

namespace App\Http\Controllers;

class ConfigController extends Controller
{
    // フォーム
    public function index() {
        $env = config('envConfig.test_env');
        dd($env);
    }
}

※ 他は同じです。

結果

"TEST"

3. なぜconfigを経由するのか?

以下のサイト参照
https://hiroto-k.hatenablog.com/entry/2018/03/28/213000
「本番環境でconfig:cacheコマンドを実行した際、.envファイルを読み込まないから。」

これはどういうことなのか書いていきます。

php artisan config:cache

こちらのコマンドは、configの読み込みを早くするキャッシュを作成するコマンドです。

そして、.envが読み込まなくなります。
以下参考
https://qiita.com/tatsuya_1995/items/c53f2fcb468b9cd27eb9

このコマンドを実行した後の1の結果は以下です。

結果

null

安易にconfig:cacheは使わない方がいいという記事も見ましたが、その通りかもしれません。

個人的な安全策は2のconfigを通して取得するのがいいかなと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0