[.env]ファイル
はじめに
設定する内容は様々で、以下の様なものがあります。
● ログ出力設定
● メール設定
● セッション管理
● 独自設定などなど...
環境の切り替え
丁度デフォルトの状態で設定ファイルが「.env」「.env.example」の2つが用意されているので、
「.env.example」を参照する様にしてみましょう。
設定方法は環境変数を以下の様に設定します。
値 :example
ターミナルから『echo %APP_ENV%』を叩いたら『example』と表示されるハズです。
※表示されない場合は再起動
両ファイルを同じ内容にしましょう。
その後、両ファイルそれぞれの1行目に以下の内容を追記します。
HOGE_NAME=HOGE
HOGE_NAME=example
return [
'conf_hoge' => env('HOGE_NAME', 'default'),
基本的に環境設定ファイルは直接参照しない事が推奨されています。
「config」内にある「app.php」ファイルに書き込んだ内容を参照する様にします。
● 値 :関数「env」を使い、環境設定ファイルで命名したKEY名を指定します。
※ 第2引数はデフォルト値です
先ほど作成したビュー「index.blade.php」に以下を追記してください。
[config]はビュー内で利用できるグローバル関数です。 引数の内容はドット区切りで以下の意味があります。
● [conf_hoge]・・・上記ファイル内のKEY「conf_hoge」に対応する設定ファイルの値を参照する
データベース設定
「xampp」経由で話を進めるため、使用するのは「MySQL」となります。
特にポチポチ「XAMPP」をインストールした場合は、以下コマンドでログインできると思います。
use hoge_db;
show tables;
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=hoge_db
DB_USERNAME=hoge_user
DB_PASSWORD=hoge9999
SESSION_DRIVER=file
※ [database]のままだと、セッション管理をDBで行います
「Laravel」ルートディレクトリ([artisan]ファイルがある場所)から以下を叩きます。
C:\~\laravel_12>php artisan migrate
INFO Preparing database.
Creating migration table ...................... 170.00ms DONE
INFO Running migrations.
0001_01_01_000000_create_users_table .......... 500.00ms DONE
0001_01_01_000001_create_cache_table ........... 80.00ms DONE
0001_01_01_000002_create_jobs_table ........... 430.00ms DONE
C:\~\laravel_12>
・cache_locks
・failed_jobs
・job_batches
・jobs
・migrations
・password_reset_tokens
・sessions
・users
また「~\database\migrations」に以下の様な『マイグレーションファイル』が作成されます。
・0001_01_01_000001_create_cache_table.php
・0001_01_01_000002_create_jobs_table.php
マイグレーションファイルは、テーブルの作成や変更等の全てのDB操作が記述された履歴ファイルです。
[artisan]コマンドを使い特定の履歴まで戻したり、また新たにDB環境を作成した場合に同じ内容のテーブルを作成したりできます。
ただし覚える知識の量に対して、簡単にエラーになったりするので、普通に「DDL」等は別管理にした法が良いと思います。
ログ設定
まずは、ログファイルを日単位に出力する様に設定してみます。
環境設定ファイルを開き、KEY名「LOG_CHANNEL」の内容を[stack]から[daily]へ変更します。
次にログ出力内容の詳細設定である「~\config\logging.php」を開きます。
以下の内容に修正して下さい。
'channels' => [
~ 省略 ~
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => env('LOG_DAILY_DAYS', 14),
'replace_placeholders' => true,
'permission' => 0666,
],
各連想配列のKEYは以下の設定となります。
[path]・・・・・・・・・・・「~\storage\logs」内の[laravel{-2026-xx-xx}.log]として出力します
[level]・・・・・・・・・・・ 重要度が低い順に以下の種類があります
[debug][info][notice][warning][error][critical][alert]
[days]・・・・・・・・・・・デフォルトは14日保存されます
[replace_placeholders]・・・ログ出力内容のプレースホルダーの扱いですが「true」としておきましょう
[permission]・・・・・・・・ Linux環境下での権限設定です「0666」が色々安全です
任意のビューへ以下を追記して下さい。
先ほどのビューを呼び出したコントローラへ設定してみます。
まずロジック側から使用する場合は、必ず『Log』クラスを使う事を宣言して下さい。
バッチ処理等で専用のログファイルを作成したい場合もあると思います。
そんな時は「~\config\logging.php」に新しいログ定義を追加する事で対応できます。
先ほどまでは「channels」配列内に更に「daily」配列を作成する形でログ定義をしました。
同様に例えば「channels」配列内に「hoge_log」配列を作成し、以下の様な定義をします。
-----------------------------------------------------
channels' => [
~ 省略 ~
'hoge_log' => [
'driver' => 'daily',
'path' => storage_path('logs/hoge.log'),
'level' => env('LOG_LEVEL', 'debug'),
days' => env('LOG_DAILY_DAYS', 14),
'replace_placeholders' => true,
],
----------------------------------------------------
上記設定をロジック内で使用するには以下の様にします。
$hoge_log = Log::channel('hoge_log');
$hoge_log->debug( 'hoge...', [ 'foo' => 'ほげ' ] );





以前のlaravelのバージョンでは、[bootstrap/app.php]から『$app->loadEnvironmentFrom()』で操作できた様ですが、本『Ver.12』では環境変数を使用します。