laravelで本番と開発環境を切り替える為の環境変数と定数の仕組み

php/laravel

laravelプロジェクトであとうともなくても、本番環境と開発環境で、設定を切り替える事が多々あります。

一例としては

  • サーバー名
  • DB名
  • AWSのS3の設定

が挙げられます。

laravelのグローバル変数の仕組みとENVファイルについて

基本的に.envファイルをconfigフォルダ配下のphpファイルで読み込みconfig()
関数で読み込む事が一連の流れになります。

.envファイルには

HOGEHOGE_ID=何か値

この.envファイルを読み込むファイルとしてconfigフォルダ配下に、例としてconst.phpを作成して下記を記載します。

<?php
return [
     'hogehoge_id' => env('HOGEHOGE_id'), 
];

とする事で.envファイルに設定しておいた、値を読みこませる事ができます。
またこの値は下記で呼び出す事ができます。

config(const.hogehoge_id);

上記より、本番と開発で一括で切り替える場所は.envファイルにまとめておく事で環境の切り替えが楽に行う事ができます。

またconfig/const.php等に書いた定数が、エラーにはならない物の切り替わらない場合は

php artisan config:cache

でchacheをクリアーにする事で反映されます。