
PHP Laravelの学習に際し、ReaDoubleを読み進めていく中で出会った「単語、技術、考え方」などについて、個人的に関心を持ったトピックを中心に取り上げていきます。
本シリーズは、ReaDoubleの補足資料的に利用するのがおススメです。
- 参照するReaDouble
- 対象読者
- 初めてLaravelを勉強する人
- ReaDoubleでLaravelを勉強している人
- 参考資料
configディレクトリを確認する
configディレクトリには、Laravelフレームワークの全設定ファイルが保存されています。ありがたいことに各オプションには詳しいコメントが付いているので、各ファイルを一読して使用できるオプションを把握しておくとよさそうです。
環境設定
アプリケーション開発では、開発環境と本番環境とで異なる設定値を使用することがよくあります。複数種類の設定値を簡単に切り替えられるように、LaravelではDotEnvライブラリを使用しています。
.env
デフォルトで作成される.envファイルには、開発環境と本番環境とで異なる可能性のある設定値が記載されており、これらの値はLaravelのenv関数(後述)を使用してconfigディレクトリ内の様々な設定ファイルから取得されています。
.envファイルは開発者/サーバーごとに異なる環境設定が必要になる場合があるため、Githubなどでソース管理する必要はありません。また、機密性の高い情報が公開されるリスクもあります。
.env.example
.env.exampleファイルには一般的に必要な環境変数が定義されており、チーム内で設定値を明確に共有するために用いられます。
環境変数の取得
環境変数を取得するには、Laravelのenv()関数を使用します。configディレクトリ内のファイルを見ると、このenv()関数が多用されていることが分かります。
/*
第一引数には変数名
第二引数にはデフォルト値※
※変数が設定されていない場合に返す値
*/
'name' => env('APP_NAME', 'Laravel');
設定値へのアクセス
config関数を利用すると、アプリケーションのどこからでもconfigディレクトリ内で設定している値へアクセスすることができます。
//config/app.phpのtimezoneの値へアクセス
$value = config('app.timezone');
//設定値が存在しない場合のデフォルト値を設定
$value = config('app.timezone', 'Asia/Seoul');
//実行時に設定値をセットする
config(['app.timezone' => 'America/Chicago']);
デバッグモード
config/app.phpのdebugオプションは、エラーに関する情報がユーザーに表示される量・有無を決定します。app.phpのdebugオプションはデフォルトで.envのAPP_DEBUG変数を参照しているため、APP_DEBUG変数を変更することでdebugオプションを設定できます。
ローカル開発の場合はAPP_DEBUG変数をtrueに設定する必要がありますが、本番環境では必ずfalseにする必要があります。本番環境で変数がtrueのままだと、エラーメッセージから機密性の高い設定値が漏洩してしまう可能性があります。
まとめ
以上です。
Laravelの勉強、頑張りましょう。