Laravel 5.1 入門記 その2(Config 編)
このページの Environment Configuration から再開。
Environment configuration
実行環境によって、設定値を変えたいことがある場合は、DotEnv という仕組みで簡単に変えられるらしい。
Laravel Create-Project したときに生成された .env.example がそれにあたるみたい。 Composer 経由でインストールした場合は、.env も作られる。.env が本体で無い場合は .env.example をコピーする。
この .env に定義された値は、$_ENV のスーパーグローバル変数に設定され、helper を通じて値を取得できる。configファイルを見ていたら、既に使っているコードを見かけたはずだって。 そんなの忘れちゃったよ…。 config/app.php を見直すと…
'debug' => env('APP_DEBUG', false),
あー、これね。
.env は開発者やサーバによって設定値が異なるため、コミットすべきではない。しかしチーム開発をしている場合は、.env.example はコミットに含め続けて place-holder value を .env.example に定義しておくのが良いらしい。
何か特殊な作り方が出来るのかな。デプロイ戦略のドキュメントもあったら良いのに。
Accessing The Current Application Environment
アプリケーションの実行環境は、 .env の APP_ENV によって決定される。 この値は、以下のようにして取れる。
$environment = App::environment();
environment に値を渡すと、それらが含まれるかチェックできる。複数の値のチェックも可能。
if (App::environment('local')) {
// The environment is local
}
if (App::environment('local', 'staging')) {
// The environment is either local OR staging...
}
application インスタンスは app() を介して取得できるらしい。
$environment = app()->environment();
さっきのと何が違うのか分からないな…。 とりあえず、次へ。
Configuration Cacihing
アプリケーションのスピードアップのために、config:cache の Artisan のコマンドを使って設定ファイルは1つのファイルにキャッシュすべき。1つのファイルにまとまるとフレームワークが素早く設定を読み込めるらしい。
config:cache コマンドの実行は開発時のルーティーン作業になるらしい。
んー、少し実装作業してみないと感覚的に分かんないや。
Accessing Configuration Values
簡単に設定値にアクセスできる config helper というのがあるらしい。 config/app.php に設定された timezone は次のようなコードで取得できる。
$value = config('app.timezone');
runtime 上で設定することもできるらしい。
config(['app.timezone' => 'America/Chicago']);
なるほどね。 ここまで読んで、.env と config の棲み分けがやっと分かった。 .env は設定を直接書いてあるものなのかと思ったけど、そうじゃなくて、.env で読み込んだものは、 config がロードされたときに環境毎に設定を変えたいものを指定しておくためのものなのね。だから place holder なんて書いてあったのか。
Naming Your Application
Laravel をインストール後、アプリケーションの名前を決める。デフォルトは app フォルダで名前空間に App となる。そして Composer は PSR-4 標準オートローディングを使っている。
アプリケーション名を変えたければ、artisan の app:name コマンドで簡単に変更ができる。
名前を Horsefly に変えたければ、以下のような感じ
$ php artisan app:name Horsefly
App の名前空間を維持するかは、あなた次第らしい。 まぁ、そのままでもいいのかな…。
Maintenance Mode
メンテナンスモードの切替が標準搭載かw 色々すごいw
$ php artisan down
で、メンテナンスモード有効
$ php artisan up
で、メンテナンスモード無効。 そして、この時のメンテナンス画面は resources/views/errors/503.blade.php が使われるらしい。
Maintenance Mode & Queues
メンテナンスモードに入ると、キューに入っているジョブの実行が始まるらしい。 キューに入ってないジョブとの違いが知りたい。 そのうち出てくるかな。
とりあえず、ここまでー\(^o^)/ 次回は Homestead はスルーして The Basics の Routing に進みます。