Laravel 4.2 設定

イントロダクション

Laravelフレームワークの全設定ファイルはapp/configディレクトリーの中に設置されています。全ファイル中の、それぞれのオプションにコメントが入っています。自由にご覧になり、用意されたオプションを理解してください。

実行中に設定値へアクセスする必要が起きることもあるでしょう。Configクラスを使ってください。

設定値へアクセスする

Config::get('app.timezone');

設定オプションが存在しない場合、指定したデフォルト値を返すようにすることも可能です。

$timezone = Config::get('app.timezone', 'UTC');

設定値をセットする

「ドット(ピリオド)」スタイルの記法で様々なファイルの設定値にアクセスできることに注目してください。また、実行時に設定値をセットすることもできます。

Config::set('database.default', 'sqlite');

設定値はこのリクエストの実行時間の間のみ保持されます。次のリクエストに持ち越されることはありません。

環境の設定

アプリケーションを実行している環境に基づいて、異なった設定値を使用できれば、多くの場合に役立つでしょう。例えば、実働サーバーと開発マシーンでは、別のキャッシュドライバーを使用したい場合です。これは簡単に実現でき、設定に基づいた環境を使用できます。

localのような環境名と同じディレクトリーをconfigディレクトリーに作成してください。続いて、その環境でオーバーライドしたい特定のオプションを指定した、環境ファイルを作成します。例えば、ローカル環境のキャッシュドライバーをオーバーライドしたければ、app/config/localに次の内容のcache.phpファイルを作成してください。

<?php

return array(

    'driver' => 'file',

);

注目: testingを環境名として使用しないでください。これはユニットテストのための予約名です。

元となる設定ファイルの全てのオプションを指定する必要はなく、オーバーライドしたいものだけで良いことに注意してください。環境による設定ファイルは元となるファイルを「カスケード(cascade)」形式でオーバーライドします。

次にフレームワークにどの動作環境で動いているのかを教える必要があります。デフォルトの環境はproductionです。しかしながら、インストールした一番上の階層にあるbootstrap/start.phpファイルで、他の環境を設定することができます。このファイルの中に$app->detectEnvironmentの呼び出しを見つけてください。現在の環境を決定するための配列をこのメソッドに渡しています。必要であれば他の環境とマシーン名を配列に追加してください。

<?php

$env = $app->detectEnvironment(array(

    'local' => array('your-machine-name'),

));

この例で、'local'は環境の名前、'your-machine-name'はサーバーのホスト名を指します。LinuxとMacで、ホスト名はhostname端末コマンドで調べられます。

環境の決定を更に柔軟に行いたい場合は、detectEnvironmentメソッドにクロージャーを渡し、お好きな方法で環境の決定コードを実装してください。

$env = $app->detectEnvironment(function()
{
    return $_SERVER['MY_LARAVEL_ENV'];
});

現在のアプリケーションの環境にアクセスする

現在のアプリケーションの環境にはenvironmentメソッドによりアクセスできます。

$environment = App::environment();

'environment`メソッドに引数を渡すことで、指定した値の環境であるかを確認することができます。

if (App::environment('local'))
{
    // 環境はlocal
}

if (App::environment('local', 'staging'))
{
    // 環境はlocalかstaging
}

プロバイダー設定

動作環境による設定の使い分けを使用している場合、メインのapp設定ファイルに、環境ごとのサービスプロバイダーを追加(append)したいこともあるでしょう。しかしながら、この方法では、環境ごとのappファイルに指定した内容が、メインのapp設定ファイルをオーバーライトしてしまうことに、注意してください。プロバイダーを強制的に追加したい場合は、append_configヘルパメソッドをその環境のapp設定ファイルで使用してください。

'providers' => append_config(array(
    'LocalOnlyServiceProvider',
))

機密な設定の保護

「現実の」アプリケーションでは、機密扱いの設定を全部、設定ファイルより外しておくことは、賢明な手法です。データーベースのパスワードやStripeのAPIキー、暗号化のキーは、できるのであればいつでも、設定ファイルから外しておきましょう。では、どこに置くのが良いのでしょうか?ありがたいことに、Laravelは「ドット」ファイルを使用し、これらの設定項目を保護する、シンプルな解決策を提供しています。

最初に、アプリケーションの設定で、開発機をlocal環境として認識させます。次に、.env.local.phpファイルをプロジェクトのルート、通常はcomposer.jsonファイルが存在するディレクトリーへ、設置します。.env.local.phpファイルは、典型的なLaravelの設定ファイルと同様に、キー/値のペアの配列を返す必要があります。

<?php

return array(

    'TEST_STRIPE_KEY' => 'super-secret-sauce',

);

このファイルから返されたキー/値のペアは全部、自動的に$_ENV$_SERVERのPHP「スーバーグローバル」を通じてアクセスできるようになります。次に、このグローバルで参照できる値を、設定ファイルで指定してください。

'key' => $_ENV['TEST_STRIPE_KEY']

.env.local.phpファイルを確実に.gitignoreファイルに追加してください。これにより、あなたのチームメンバーは、自分自身のローカル環境設定を作成でき、それと同時に、ソースコントロールから、機密の設定アイテムを隠すことが可能になります。

次に実働サーバーで、.env.phpファイルをプロジェクトルートに作成し、実働環境に適した値を指定してください。.env.local.phpファイルと同様に、実働の.env.phpファイルはソースコントロールから除外すべきでしょう。

注目:アプリケーションがサポートする環境ごとに、このファイルを作成することができます。例えば、development環境では、.env.development.phpファイルが存在すれば、ロードされます。production環境の場合は、常に.env.phpファイルが使用されます。

メンテナンスモード

アプリケーションがメンテナンスモードの場合、アプリケーションで指定した全ルートでカスタムビューを表示する必要があります。これにより、アップデートやメンテナンスを実行する時、簡単にアプリケーションを「停止」させることができます。app/start/global.phpファイルの中でApp::downメソッドを呼び出しています。アプリケーションがメンテナンスモードの場合、このメソッドからのレスポンスがユーザーに送信されます。

メンテナンスモードへ切り換える場合は、シンプルにdown Artisanコマンドを実行してください。

php artisan down

メンテナンスモードを解除する場合は、upコマンドを使用します。

php artisan up

アプリケーションがメンテナンスモードの時にカスタムビューを表示したい場合は、app/start/global.phpへ以下のように指定してください。

App::down(function()
{
    return Response::view('maintenance', array(), 503);
});

downメソッドに渡されたクロージャーがNULLをリターンする場合、そのリクエストではメンテナンスモードが無視されます。

メンテナンスモードとキュー

アプリケーションがメンテナンスモードの場合、キューのジョブは処理されません。メンテナンスモードが解除され、アプリケーションが通常モードになった時点で、処理が続けられます。

ドキュメント章別ページ

Artisan CLI

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる