イントロダクション
フレームワークの全設定ファイルは、config
ディレクトリーの中に用意されています。全ファイルの、各オプションにコメントが付いています。ご覧になり、用意されているオプションを理解してください。
インストール後
アプリケーションの命名
Laravelをインストールしたら、アプリケーションに「名前」を付けたいことでしょう。app
ディレクトリーはデフォルトでApp
名前空間下にあり、PSR-4オートローディング規約により、Composerがオートローディングしています。しかし、app:name
Artisanコマンドにより、簡単にアプリケーション名に適した名前空間へ変更できます。
例えばアプリケーションを"Horsefly"と名付けたければ、インストールルートのディレクトリーで、次のコマンドを実行してください。
php artisan app:name Horsefly
アプリケーションの名前付けは強制ではありません。App
名前空間のままでもかまいません。
他の設定
Laravelでは、最初に設定が必要な項目は、大してありません。すぐに開発を開始することもできます!ですが、config/app.php
ファイルと、そのコメントには目を通しておいたほうが良いでしょう。場所に合わせて変えておきたいtimezone
やlocale
のような、オプションを多く含んでいます。
Laravelをインストールし終えたら、ローカル環境の設定も行いましょう。
注意: 実働中のアプリケーションに対し、
app.debug
設定オプションをtrue
に設定してはいけません。
パーミッション
Laravelでは、2箇所パーミッション設定が必要です。storage
とvendor
下のフォルダーへWebサーバーによる書き込みアクセスを設定してください。
設定値の取得
Config
ファサードを利用し、設定値へ簡単にアクセスできます。
$value = Config::get('app.timezone');
Config::set('app.timezone', 'America/Chicago');
config
ヘルパ関数を使用することもできます。
$value = config('app.timezone');
環境設定
アプリケーションを実行している環境に基づいて、異なった設定値を使用できれば、多くの場面で役立つでしょう。例えば、ローカル環境では実働環境とは異なったキャッシュドライバーを使いたい時などです。環境ベースの設定で簡単にできます。
Laravelは、Vance Lucasさんにより作成された、DotEnvを活用しているので、朝飯前です。インストールしたてのLaravelでは、アプリケーションのルートディレクトリーに.env.example
ファイルが含まれています。Composerを利用してLaravelをインストールしたら、このファイルは自動的に.env
へリネームされます。Composerを使用しない場合は、自分で名前を変更してください。
このファイルにリストされている全変数は、アプリケーションがリクエストを受け取ると、$_ENV
PHPスーパーグローバルへロードされます。これらの変数から値を取得するには、env
ヘルパが使用できます。実際、Laravelの設定ファイルを調べてみれば、多くのオプションでこのヘルパが使用されていることに気がつきます!
ローカルサーバーの要求に合わせ、環境変数を変更してください。実働環境でも同様です。しかし、.env
ファイルをアプリケーションのソース管理下へ追加してはいけません。あなたのアプリケーションを利用する各開発者/サーバーが、別々の環境値を設定できるからです。
チームにより開発を行っているならば、アプリケーションに.env.example
ファイルを含めておいたほうが良いでしょう。example設定ファイルへプレースフォルダー値を入れておけば、他の開発者はアプリケーションを実行するために、どの環境変数の設定が必要なのか明確に理解できます。
現在のアプリケーション環境取得
現在のアプリケーションの環境へは、Application
インスタンスのenvironment
メソッドによりアクセスできます。
$environment = $app->environment();
environment
メソッドに引数を渡し、指定した値の環境であるかをチェックすることもできます。
if ($app->environment('local'))
{
// 環境はlocal
}
if ($app->environment('local', 'staging'))
{
// 環境はlocalかstaging
}
アプリケーションのインスタンスを取得するには、サービスコンテナーにより、Illuminate\Contracts\Foundation\Application
契約を依存解決してください。もちろん、サービスプロバイダーの中では、$this->app
インスタンス変数により、アプリケーションインスタンスを利用できます。
アプリケーションインスタンスへはapp
ヘルパか、App
ファサードでもアクセスできます。
$environment = app()->environment();
$environment = App::environment();
キャッシュの設定
アプリケーションを少しスピードアップするために、config:cache
Artisanコマンドで、全ての設定ファイルを一つにまとめることができます。このコマンドは全設定オプションを一つのファイルへ結合し、フレームワークが素早くロードできるようにします。
通常はデプロイ手順の一部として、config:cache
コマンドを実行すべきでしょう。
メンテナンスモード
アプリケーションがメンテナンスモードの場合、そのアプリケーションで指定した全リクエストでカスタムビューを表示する必要があります。これにより、アップデートやメンテナンスを実行する時、簡単にアプリケーションを「停止」させることができます。メンテナンスモードのチェックは、アプリケーションのデフォルトミドルウェア中で行われています。アプリケーションがメンテナンスモードの場合、503のステータスコードと共に、HttpException
例外が投げられます。
メンテナンスモードへ切り換える場合は、シンプルにdown
Artisanコマンドを実行してください。
php artisan down
メンテナンスモードを解除する場合は、up
コマンドを使用します。
php artisan up
メンテナンスモードのレスポンステンプレート
メンテナンスモードで使用されるデフォルトのテンプレートは、resources/views/errors/503.blade.php
に存在しています。
メンテナンスモードとキュー
アプリケーションがメンテナンスモードの場合、キューのジョブは処理されません。メンテナンスモードが解除され、アプリケーションが通常モードになった時点で、処理が続けられます。
きれいなURL
Apache
フレームワークに含まれているpublic/.htaccess
ファイルにより、index.php
がURLに含まれていなくてもアクセスできます。LaravelアプリケーションのWebサーバーとしてApacheを使用している場合、mod_rewrite
を確実に有効にしてください。
もし、フレームワークに含まれている.htaccess
ファイルが動作しない場合は、以下の指定を試してください。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
WebホストでFollowSymlinks
が許可されていない場合、Options +SymLinksIfOwnerMatch
を代わりに試してください。
Nginx
Nginxの場合、以下のディレクティブをサイトの設定で指定すれば、「きれいな」URLが利用できます。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
もちろん、Homesteadを使用すれば、きれいなURLの設定は自動的に行われます。