Laravel
【初心者向け】Laravelのconfigとenvの関係について分かりやすく説明します
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
オススメ本
なぜ書くのか
新しいパッケージを導入しようとしたときに、
config/***.php を編集する必要があります
しかし、実際に編集するファイルは
.env ファイル
だったりします。
この辺りについて理解してもらえればと思います。
config/***php とは
config ディレクトリにあるファイルは、
- アプリケーションのどこからでもアクセスできる定数
を書くことができます。
そこには、
- アプリケーションの設定を変えたり
- パッケージを使うためのアクセスキーを設定したり
します。
.env とは?
.env は git に載せないファイルです。
「環境変数」などと呼ばれるとおり、
- 環境によって定数を変更したい情報
- git に載せるべきではない情報(シークレットキーなど)
を記述するファイルです。
config と.env の関係性
config で設定したい、定数の中で
- 環境によって定数を変更したい情報
- git に載せるべきではない情報(シークレットキーなど)
したい情報を.env に書きます。
実装方法
Laravel は、インストールした時点で色々な設定ファイルがありますが
config/mail.php を題材にみていきます。
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
このような記述があると思います。
これは、.env ファイルの
MAIL_DRIVER=
の項目を読みにいく設定になっています。また、第二引数の
smtp
は、
- .env に設定が書かれていない時の初期値
です。
つまり、.env を各々の環境に応じて変更することで、config の定数が変更されるということです。
config の変更を反映させる
config の定数は、キャッシュで保持するためファイルを変更するだけでは反映されないことがあります。
そこで、コマンドを打ちます
php artisan config:cache
または、
php artisan config:clear
で、反映されると思います。
config の定数を使う方法
例えば、コントローラーなどで、
config('mail.smtp') //mailはファイル名。
と書けば、定数を呼び出 すことができます。
さいごに
- パッケージでインストールされたファイルの中に config('mail.smtp')などと書かれているので、決まった config の定数を用意しないと動かない
ということです。
まとめ
以上です。config と env は最初かなり分けわからないと思うので書いてみました。
誰かの参考になればと思います。
感想・苦情は TwitterDM にご連絡ください。
それでは!
人気記事