Laravel 5のリクエストのライフサイクル
Request Lifecycle - Laravel - The PHP Framework For Web Artisans(リクエストのライフサイクル 5.7 Laravel)
エントリポイント
すべてのリクエストはWebサーバを経由してpublic/index.phpにわたされる
index.php
composerの生成したautoloaderの定義をロード
bootstrap/app.phpからLaravelアプリケーションのインスタンスを取得する
重要なインタフェース(Kernelと例外ハンドラ)はここでBindされる
cf. ユーザ定義できるものはService Providersでbindする
Laravelの最初の仕事Application/Service Containerのインスタンスを生成する
リクエストを次のいずれかに送る
Console kernel
Artisan(PHPスクリプトを実行できる)を作るときに使う
HTTP kernel(ここではこちらをみていく)
app/Http/Kernel.php
HTTPリクエストはこちらで扱う
HTTP Kernel
Illuminate\Foundation\Http\Kernelを継承している
リクエスト実行前に処理されるbootstrappersの配列が基底クラスに定義されている
リクエストが処理される前に通すHTTPミドルウェアも定義されている
handleメソッドは\Illuminate\Http\Requestを受け取って\Illuminate\Http\Responseを返す
この中でリクエストがディスパッチされる
Service Providersのロード
Kernel初期起動時にアプリケーションのService Providersがロードされるのは、具体的にどこかというと
Http\Kernel->handle()(Laravel 5のリクエストのライフサイクル#5beeb68e3f442500009be097)でbootstrap()が呼ばれ、定義されたbootstrapクラスのbootstrap()が順に呼び出される
呼ばれるもの一覧
この順番で呼ばれる
この中のRegisterProvidersによって$app->registerConfiguredProviders()が呼ばれることですべてのService Providersがロードされる
遅延サービスプロバイダも同じような感じで呼ばれるLaravel 5#5bed5ade3f4425000043e89c
/icons/hr.icon
比較:Laravel 4のリクエストのライフサイクル
#Laravel_5
#Laravel