環境設定について
入社してコーディングの学習をメインに行なっていますが、
環境設定とかそこらへんの学習の波に乗れていないのが本音です。
早速ですが勉強してみる。
筆者の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'),
例:
return [
'hoge_env' => env('hoho'),
];
$hoge = config('app.hoge_env');
dd($hoge);
良くない例:
envファイルをコントローラーやモデルから直接読み込まない
$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
まだ全容が解明できていないので多分続く。