Laravel公式を読み解く 2. Laravel 5.5 設定
<新知識>
・Composerを使ってLaravelをインストールするといろいろ最適化されている。
ほかの方法だとインストール後にいろいろ設定しないといけない。
・.envファイルの正式名称はenv.example。
・単体テスト用の設定ファイルとして、.env.testingファイルを作成できる。
PHPUnitテスト実行時やArtisanコマンドへ--env=testingオプションを指定した場合に、.envファイルをオーバーライドできる。
・.envファイルの設定値を呼び出すヘルパー関数env('APP_DEBUG', false)
第2引数はデフォルト値。指定したキーの環境変数が存在しない場合に返される。
・現在のアプリケーション環境(テストか本番か)は、.envファイルのAPP_ENV変数により決まる。下記により、この値へアクセスできます。
$environment = App::environment();
条件分岐も可能。
if (App::environment('local')) {
// 環境はlocal
}if (App::environment(['local', 'staging'])) {
// 環境はlocalかstagingのどちらかならtrue
}
現在のアプリケーション環境は、サーバレベルのAPP_ENV環境変数によりオーバーライドされます。このホストの場合はこの環境、という風に指定可能。
・configフォルダ内のファイルの値へは、ヘルパー関数config()でアクセスできる。
$value = config('app.timezone'); //config('ファイル名.設定項目')
実行時に設定値をセットすることも可能。
config(['app.timezone' => 'America/Chicago']);
・アプリケーションをスピードアップさせるために、全設定をキャッシュする、という機能がある。全設定ファイルのオプションが、単一のファイルに結合される。
php artisan config:cache
これは本番環境へのデプロイ時にのみ実行すべき。設定が確定してからにすべき。
開発環境で設定キャッシュする場合は必ずenv関数を設定ファイルの中だけで使用すること。設定ファイルがキャッシュされると、.envファイルはロードされなくなり、env関数の呼び出しは全てnullを返す。
・アプリケーションのアップデート時に使えるメンテナンスモード、というものがある。アプリを停止して、すべてのレスポンスに対し固定のビューだけを返せる。
発動は↓
php artisan down
//カスタムメッセージ追加も可能。--message="Upgrading Database" --retry=60
終了は↓
php artisan up
resources/views/errors/503.blade.phpを定義することで、ビューのカスタマイズが可能。
ただしダウンタイムになるため、ゼロダウンタイムを実現するEnvoyerのような代替サービスが推奨。
<分からなかったこと>
①「ローカルと実働サーバでは、異なったキャッシュドライバを使いたいことでしょう」
キャッシュドライバとは
キャッシュの方式のこと。キャッシュとは、一度利用したデータなどを一時的に保存することによって、2回目以降のデータ処理速度を速める仕組みです。その反面内部キャッシュが残ってて、更新してもブラウザ上で最新の情報が表示されないという現象が起こる場合もあるので、適宜キャッシュは削除する必要もあります。
Laravelでは、ファイル方式のキャッシュだけではなく以下のような方式でキャッシュを管理することができます。
apc
array ※array方式のキャッシュについて
database
file(デフォルト)
memcached
redis
https://blog.capilano-fw.com/?p=1344#i-31
②「特定のホストに対し、サーバの設定で適切な環境を指定できます。」
ホストとは
(Web)サーバとほぼ同じ。サービスをするのが仕事のコンピュータ。
(「クライアント」の対は「サーバ」、「ゲスト」の対は「ホスト」)
サーバの名前をホスト名という。
https://wa3.i-3-i.info/diff389computer.html
③「アプリケーションがメンテナンスモードの間、キューされたジョブは実行されません。」
キューとは
メール送信やエクセル出力などの時間がかかる処理を、リクエスト・レスポンスの処理の流れとは異なる、タスクとして実行する機能。
キューで実行される処理をジョブやタスクと呼ぶ。
キュー(queue):先入先出な何か
スタック:後入先出な何か
https://wa3.i-3-i.info/word14716.html
④「メンテナンスモードでは、アプリケーションがその間ダウンタイムになってしまいます」
ダウンタイムとは
Webサイトや情報システムなどで障害が発生してそれを利用することができない期間のこと。
https://www.weblio.jp/content/%E3%83%80%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0?edc=BINIT