LoginSignup
70
54

More than 3 years have passed since last update.

envファイルとはなんだろう。

Last updated at Posted at 2020-02-02

環境設定について

入社してコーディングの学習をメインに行なっていますが、
環境設定とかそこらへんの学習の波に乗れていないのが本音です。
早速ですが勉強してみる。

筆者のenvファイルの認識

プログラミングスクールではカリキュラムにさらっと書いてあるぐらいだったので深掘りしませんでした。

認識としては
「公開しちゃいけない内緒の内容を書いておくヒミツファイル」
っていう認識でした。激甘ですかね。。。
(私、スクールに通っておりました。)

envコマンド

envファイルの前に
envコマンドというものがある!

コンピュータに対する命令の1つ
環境変数を設定してコマンドを実行する時に使うコマンド!

※書き方

env [オプション] [環境変数名]=[値] [コマンド]

env env1=val1 com1

環境変数[env1]に値[val1]が設定された状態で[com1]が実行される。

envファイル

UNIX系のOSで使えるコマンド「env」の本体ファイル。シェル起動時に読み込まれる。
リポジトリにコミットされない。環境毎に変更したい情報をまとめておくファイル。

重要な設定変更はこのenvファイルを介して出来る。
・開発環境、本番環境の切り替え
・DBの接続情報の変更

注)envはconfig経由で呼ぶ事

env()はLaravelのヘルパ関数です。
第2引数はデフォルト値。

'username' => env('DB_USERNAME', 'doruji'),

例:

config/app.php

return [
    'hoge_env' => env('hoho'),
];
Conftollers/HogeController.php

$hoge = config('app.hoge_env');
dd($hoge);

良くない例:
envファイルをコントローラーやモデルから直接読み込まない

Conftollers/HogeController.php
$hoge = env('hoho');
dd($hoge);

config:casheコマンドを実行した場合、envファイルを読み込まなくなる。
 ①envファイルはIlluminate\Foundation\Bootstrap\LoadEnvironmentVariablesクラスのbootstrap()で読み込まれる
 ②キャッシュがあった場合はenvの読み込み込まなくなる。

php artisan config:cashe

envファイルの中身


APP_NAME: 開発しているサイト名
APP_ENV: 開発しているサイトの実行環境名(local/staging/production)
APP_KEY: 暗号化に使われるキー
APP_DEBUG: デバッグの表示設定(デフォルトはtrue)
APP_URL: サイトのURL
LOG_CHANNEL: ログ情報の設定
DB_CONNECTION:利用するデータベースの種類 (mysql/pgsql/sqlite)
DB_HOST:データベースのホスト
DB_PORT:データベースが利用するポート番号
DB_DATABASE:利用するデータベース名
DB_USERNAME:利用するデータベース名にアクセスするユーザー名
DB_PASSWORD:利用するデータベース名にアクセスするパスワード

参考資料

保存版!Laravelの.envでできること大全←九保先生の記事をいつも参考にしております!
https://reffect.co.jp/laravel/env-file-basic-understanding

まだ全容が解明できていないので多分続く。

70
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
54