サービスプロバイダは、ブートストラップ中にアプリケーションコンテナにサービスを追加しますが、ミドルウェアは...?Laravel 5のミドルウェアとサービスプロバイダの違いは?
0
A
答えて
1
ミドルウェアはリクエスト/コントローラの実行/応答の間にチェーンを形成する可能性があります。
彼らは要求/応答の参照を得て、要求/応答を自由に変更することができます。 >要求 - - >プロバイダ - >ミドルウェア#1 - >ミドルウェア#2 - >コントローラ
:あなたは
など、何かをログに記録し、応答を変更、リダイレクトすることができそれはこれらのようなチェーンを形成することができますメソッド - >ミドルウェア#3 - >応答- >リクエスト - >プロバイダ - >ミドルウェア#1 - >リダイレクト
サービスプロバイダはかなり異なっています。アプリケーションがブートストラップすると、登録されたサービスプロバイダが呼び出されます。これらのプロバイダは、インスタンスをIoCコンテナ、コンソールコマンド、ビューコンポーザなどに登録することができます。
0
のように、ミドルウェアは通常、応答の途中にあります。&応答(例カスタム認証)。定義されていると常に呼び出されることを覚えておいてください。いつもする必要があるものがあれば、かなり便利です。
サービスプロバイダは同様のことをしますが、要求/応答には依存しませんが、アプリケーションのブートストラップ時間、つまり初期化プロセスには依存しません。
ミドルウェアはリクエストフィルタと考える。サービス提供者は...サービスを提供するうえでのことです(あまり単純化しているにもかかわらず、大まかに言えば工場という)。それぞれの役割が何であるかには違いがあります。 – apokryfos