Laravelのライフサイクル-リクエストからレスポンスまで
ユーザーがリクエストして、レスポンスが返ってくるまでの流れ
- ユーザーがリクエスト(HTTP Request)
- エントリポイント(public/index.php)
- HTTPカーネル(app/Http/Kenerl.php)
- ルータ(routes/web.php)
- ミドルウェア
- コントローラ
- ミドルウェア
- ルータ(routes/web.php)
- HTTPカーネル(app/Http/Kenerl.php)
- エントリポイント(public/index.php)
- レスポンス
リクエストからコントローラまで
送信されたリクエストは、public/index.php
で処理される。
リクエストをもとにRequestを生成し、HTTPカーネルに引き渡す。
HTTPカーネルでは、アプリケーションをセットアップし、ルータにリクエストをディスパッチ。
ルータは、リクエストの内容を元にroutes/web.php
内のルート定義から、処理するコントローラのメソッドやクロージャを決定する。
適合するルート定義があれば、Requestを与えて実行する。
ルートにミドルウェアがあれば、ミドルウェアを実行し、コントローラを実行。
コントローラからレスポンスまで
コントローラでは、ビジネスロジックの実行やDBアクセス、ビューの生成を行い、レスポンスで返すための値をIlluminate\Http\Response
もしくはIlluminate\Http\JsonResponse
インスタンスとして返す。
この値はリクエスト処理時とは逆の順序でミドルウェア→ルータ→HTTPカーネル→エントリポイントへ戻され、レスポンスとして出力される。