デフォルトのリクエストクラスを変更する


 悩み事

アプリケーション独自のリクエストクラスを使いたい

 解決方法

ライフサイクルの早期段階でApplication::requestClass()を利用します

Laravelアプリケーションが起動する際にApplicationクラスが生成され、
Applicationクラスが最初にリクエストクラスのインスタンスを生成するので、
生成される前に変更しなければなりません

Step 1 - クラスを作成する

必ず\Illuminate\Http\Requestクラスを継承しなければなりません

<?php
namespace MyApp;

class Request extends \Illuminate\Http\Request
{
    // add your methods here
}

Step 2 - bootstrap/start.phpを変更します

$app = new Illuminate\Foundation\Application;よりも上部で次のコードを追加します

use Illuminate\Foundation\Application;

Application::requestClass('MyApp\Request');

これだけです!
Applicationが構築されるときに、
Illuminate\Http\Requestに変わって独自のクラスが利用されます

 アドバイス

Application::requestClass()にクラスを指定しない場合は、
リクエストクラスを設定せずに利用されるリクエストクラス名を返却します

デフォルトのRequestクラスを取得する をご覧下さい

リクエストライフサイクルの初期で設定されるため、
この段階ではAppファサードを利用する事はできません


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa