ホームページ  >  記事  >  PHPフレームワーク  >  Laravelフレームワークのライフサイクルの段階は何ですか? Laravel ライフサイクルの 4 つの段階の紹介

Laravelフレームワークのライフサイクルの段階は何ですか? Laravel ライフサイクルの 4 つの段階の紹介

不言
不言オリジナル
2018-08-01 12:01:354070ブラウズ

Laravelリクエストからレスポンスまでの実行プロセス全体は、主にプログラムの起動準備段階、リクエストのインスタンス化段階、リクエストの処理段階、応答の送信およびプログラムの終了段階の 4 つの段階に分けられることはよく知られています。他にありますか?リクエストからレスポンスまでのlaravelフレームワークのライフサイクル全体を簡単に見てみましょう。

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

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

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

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

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

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

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

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

$request = Illuminate\Http\Request::capture();
IlluminateHttpRequest类的实例对象中,也就是说将请求转化为一个实例对象。请求实例的创建是通过IlluminateHttpRequest类的capture()静态方法完成的,即:

rrreee

但在capture()方法中,可以看出Laravel的请求实例是在Symfony请求实例的基础上创建的。而Symfony是通过PHP的全局数组$_GET、$_POST、$_COOKIE、$_FILE和$_SERVER作为参数来实例化请求的。

请求处理阶段

请求处理阶段首先是准备请求处理的环境,包括环境加载、服务提供者注册等环节,然后将请求实例通过中间件处理及通过路由和控制器的分发控制,使得不同的请求通过相应的处理程序进行处理并生成响应的过程。

响应发送和程序终止阶段

响应发送

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

リクエスト処理フェーズ

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

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

レスポンス送信

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

Laravelでは、主に終了プログラムが終了ミドルウェアの呼び出しを完了します。
上記はこの記事の全内容です。laravel の詳細については、🎜Laravel Framework Getting Started🎜 チュートリアルを参照してください。 🎜🎜🎜おすすめ関連記事: 🎜🎜🎜PHPライフサイクルの図解、PHPライフサイクル_PHPチュートリアル🎜🎜🎜🎜🎜[ Laravel 5.2 Documentation ] アーキテクチャ -- リクエストのライフサイクル🎜🎜🎜🎜🎜🎜🎜

以上がLaravelフレームワークのライフサイクルの段階は何ですか? Laravel ライフサイクルの 4 つの段階の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。