Laravel

【初心者向け】Laravelのconfigとenvの関係について分かりやすく説明します

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。

⇨ Laravel 記事の目次はこちら

なぜ書くのか

新しいパッケージを導入しようとしたときに、

config/***.php を編集する必要があります

しかし、実際に編集するファイルは

.env ファイル

だったりします。

この辺りについて理解してもらえればと思います。

config/***php とは

config ディレクトリにあるファイルは、

  • アプリケーションのどこからでもアクセスできる定数

を書くことができます。

そこには、

  1. アプリケーションの設定を変えたり
  2. パッケージを使うためのアクセスキーを設定したり

します。

.env とは?

.env は git に載せないファイルです。

「環境変数」などと呼ばれるとおり、

  1. 環境によって定数を変更したい情報
  2. git に載せるべきではない情報(シークレットキーなど)

を記述するファイルです。

config と.env の関係性

config で設定したい、定数の中で

  1. 環境によって定数を変更したい情報
  2. 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 にご連絡ください。

それでは!

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

【laravel-breadcrumbs】Laravel でパンくずリストを実装する