ホームページ > PHPフレームワーク > Laravel > Laravelのリクエストからレスポンスまでのライフサイクル

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

藏色散人
リリース: 2019-11-05 13:51:36
転載
2267 人が閲覧しました

Laravel のリクエストからレスポンスまでの実行プロセス全体は、プログラム起動準備段階、リクエストインスタンス化段階、リクエスト処理段階、レスポンス送信段階、プログラム終了段階の 4 つの段階にまとめることができます。

#プログラム起動準備フェーズ

サービス コンテナのインスタンス化

サービス コンテナのインスタンス化と基本登録 (サービスを含む) コンテナそれ自体が登録され、基本サービスプロバイダーが登録され、コアカテゴリ名が登録され、アプリケーションの基本パスが登録されます。登録されるサービスは特定のクラス名のみであり、オブジェクトはリフレクション機構を通じてインスタンス化され、コンストラクター内の依存関係はリフレクション機構を通じて自動的に解決されます。

コアクラスのインスタンス化

コアクラスのインスタンス化とは、サービスコンテナをインスタンス化した後、コアクラス名でサービスを登録することで得られる、サービスコンテナの自動インスタンス化オブジェクトです。例: Index.php でのカーネル クラスのインスタンス化:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
ログイン後にコピー

リクエストのインスタンス化フェーズ

リクエストは、クライアントによって送信されるリクエスト メッセージであり、リクエスト行、Request が含まれます。ヘッダーとリクエストエンティティ。 Laravel はリクエストを Illuminate\Http\Request クラスのインスタンス オブジェクトに分類して保存します。これはリクエストをインスタンス オブジェクトに変換することを意味します。リクエストインスタンスの作成は、Illuminate\Http\Request クラスの capture() 静的メソッドを通じて完了します。つまり:

$request = Illuminate\Http\Request::capture();
ログイン後にコピー

しかし、capture() メソッドでは、Laravel のリクエスト インスタンスがSymfony リクエスト インスタンスに基づいて作成されます。 Symfony は、PHP のグローバル配列 $_GET、$_POST、$_COOKIE、$_FILE、$_SERVER をパラメーターとして使用してリクエストをインスタンス化します。

リクエスト処理フェーズ

リクエスト処理フェーズでは、まず環境の読み込み、サービス プロバイダーの登録など、リクエスト処理のための環境を準備してから、リクエスト インスタンスを渡します。ミドルウェア経由 ルーティングとコントローラーによる処理と配布の制御、対応するハンドラーを通じてさまざまなリクエストを処理し、応答を生成するプロセス。

レスポンス送信とプログラム終了フェーズ

レスポンス送信

Laravel のレスポンス処理クラスは Illuminate\Http\Response クラスです、このクラスの最下層も Symfony の Response クラスにあります。応答の送信には、応答ヘッダー情報の送信と応答本文の内容の送信の 2 つの部分が含まれます。

プログラムの終了

Laravel では、主に終了プログラムが終了ミドルウェアの呼び出しを完了します。

以上がLaravelのリクエストからレスポンスまでのライフサイクルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート