0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel学習メモ:リクエストのライフサイクル

Posted at

ライフサイクル概論

  • リクエストのエントリポイントはpublic/index.php
    • Nginx等から送信される
    • このファイルはComposerで生成したオートローダ定義をロードしLaravelアプリケーションインスタンスをbootstrap/index.phpから取得
    • 最初のアクションはアプリケーション/サービスコンテナのインスタンス生成
  • リクエストタイプに応じて…
    • HTTPカーネルかコンソールカーネルへ送信
    • HTTPカーネルに注目
      • リクエストが実行される前に実行されるbootstrappersの配列を定義する。
      • エラー処理の構成、ログの構成、などの内部設定を処理する
      • ミドルウェアを定義する
      • 最終的にはResponseを返すブラックボックスとして表現されている
  • サービスプロバイダ
    • カーネルの初期起動処理アクションの1つ
    • config/app.phpproviders配列で構成されている
      • Laravelがこのプロバイダのリストを繰り返し処理しインスタンス化する
      • registerメソッドを呼び出し
      • プロバイダを登録し、
      • 各プロバイダでbootメソッドを呼び出す
    • Laravelが提供する基本的なすべての主機能はサービスプロバイダによって初期起動および設定される。
  • RouteServiceProvider
    • Requestがルータに渡されてディスパッチされる
    • ルータはルートまたはコントローラへリクエストをディスパッチし
    • ルート固有のミドルウェアを実行
  • ルートかコントローラメソッドがレスポンスを返すと…
    • レスポンスはルートのミドルウェアを介して外側へ戻る
    • アプリケーションに送信レスポンスを変更または検査する機会を与える
      • httpカーネルのhandleメソッドがレスポンスオブジェクトを返し
      • index.phpファイルがsendメソッドを呼ぶ
        • レスポンスコンテンツをユーザのブラウザに返す。
  • AppServiceProvider
    • アプリケーション独自の初期起動処理およびサービスコンテナ結合を追加する最適な場所
    • 大規模アプリケーションなら特定のサービスに対し、より細かく初期処理を備えたものを作成するべき。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?