normcore.dev

Laravelのライフサイクル-リクエストからレスポンスまで

ユーザーがリクエストして、レスポンスが返ってくるまでの流れ

  1. ユーザーがリクエスト(HTTP Request)
  2. エントリポイント(public/index.php)
  3. HTTPカーネル(app/Http/Kenerl.php)
  4. ルータ(routes/web.php)
  5. ミドルウェア
  6. コントローラ
  7. ミドルウェア
  8. ルータ(routes/web.php)
  9. HTTPカーネル(app/Http/Kenerl.php)
  10. エントリポイント(public/index.php)
  11. レスポンス

リクエストからコントローラまで

送信されたリクエストは、public/index.phpで処理される。
リクエストをもとにRequestを生成し、HTTPカーネルに引き渡す。
HTTPカーネルでは、アプリケーションをセットアップし、ルータにリクエストをディスパッチ。
ルータは、リクエストの内容を元にroutes/web.php内のルート定義から、処理するコントローラのメソッドやクロージャを決定する。
適合するルート定義があれば、Requestを与えて実行する。
ルートにミドルウェアがあれば、ミドルウェアを実行し、コントローラを実行。

コントローラからレスポンスまで

コントローラでは、ビジネスロジックの実行やDBアクセス、ビューの生成を行い、レスポンスで返すための値をIlluminate\Http\ResponseもしくはIlluminate\Http\JsonResponseインスタンスとして返す。
この値はリクエスト処理時とは逆の順序でミドルウェア→ルータ→HTTPカーネル→エントリポイントへ戻され、レスポンスとして出力される。