環境
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"
参考