LoginSignup
2
1

More than 1 year has passed since last update.

【Laravel】環境変数を呼び出すときはconfig()を使おう

Posted at

環境

Laravel v9.5.1 (PHP v8.1.3)

概要

環境変数をenv()で直接参照せずにconfig()を使って呼び出そう!

Bad

SITE_LINK="https://sample_app.com"

環境変数をenvで直接参照しようとするとphp artisan config:cacheしたあとnullになってしまい、呼び出せない。

% docker-compose exec laravel.test php artisan tinker
>>> env('INVITATION_LINK')
=> "https://sample_app.com"
                                                                                                                                                                                                                            
% docker-compose exec laravel.test php artisan config:cache
Configuration cache cleared successfully.
Configuration cached successfully.

% docker-compose exec laravel.test php artisan tinker      
>>> env('SITE_LINK')
=> null

公式ドキュメント

開発過程の一環としてconfig:cacheコマンド実行を採用する場合は、必ずenv関数を設定ファイルの中だけで使用してください。設定ファイルがキャッシュされると、.envファイルはロードされません。したがって、env関数は外部システムレベルの環境変数のみを返すだけです。

Better

SITE_LINK="https://sample_app.com"

configディレクトリ下にファイルを作成し、下記のように環境変数を定義する。

config/hoge.php
<?php

return [
  'site_link' => env('SITE_LINK'),
];

configメソッドを使ってドット記法で呼び出す。

% docker-compose exec laravel.test php artisan tinker
>>> config('hoge.site_link')
=> "https://sample_app.com"
                                                                                                                                                                                                                            
% docker-compose exec laravel.test php artisan config:cache
Configuration cache cleared successfully.
Configuration cached successfully.

% docker-compose exec laravel.test php artisan tinker      
>>> config('hoge.site_link')
=> "https://sample_app.com"

参考

2
1
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
2
1