ThinkPHP6 のフロントエンドミドルウェアとバックエンドミドルウェアの違いは何ですか?
前回の例では、ミドルウェアの定義を学び、ミドルウェアの意味を理解した後、マニュアルをめくってみると、「プレミドルウェア」と「ポストミドルウェア」という別のマニュアルが見つかりました。両者の違いは何ですか?
1. 定義の違い。
プレミドルウェアとポストミドルウェアの定義が異なることは、公式サイトのマニュアルを見れば容易にわかりますので、以下に見てみましょう。
ミドルウェア以前の定義:
<?php namespace app\middleware; class Before { public function handle($request, \Closure $next) { // 添加中间件执行代码 return $next($request); } }
ミドルウェア以降:
<?php namespace app\middleware; class After { public function handle($request, \Closure $next) { $response = $next($request); // 添加中间件执行代码 return $response; } }
詳しく見てみると、最終的には、この 2 つは実行コードと $next であることがわかりました。 ($request) 順序の問題、プレミドルウェアとポストミドルウェアの鍵となるのはこの順序です。
2. $request は異なります。
次のコードをプレミドルウェアとポストミドルウェアでそれぞれ出力できます。
halt($request);
慎重に比較したところ、プレミドルウェアのコントローラーとメソッドが同じであることがわかりました。ミドルウェアが空の場合、ポストミドルウェアはコントローラー名とメソッドを取得できます。したがって、現在アクセスされているコントローラーとメソッドを取得したい場合は、ポストミドルウェアを使用して解決する必要があります。
#3. ミドルウェアがログイン シナリオを傍受します。
まず、公式 Web サイトでミドルウェアの定義を見てみましょう:ミドルウェアは主に、アプリケーションの HTTP リクエストをインターセプトまたはフィルターし、実行するために使用されます。必要な事務処理を行います。公式 Web サイトの定義を見て、友人はログイン傍受にはミドルウェアを使用するのが本当に最善であると考えるかもしれません。しかし、プレミドルウェアを使用すべきでしょうか、それともポストミドルウェアを使用すべきでしょうか?
<?php namespace app\middleware; class After { public function handle($request, \Closure $next) { $response = $next($request); // 添加中间件执行代码 if(empty('session')){ echo '登录不合法'; //跳转到登录页面 } return $response; } }
public function index(){ echo '后台首页'; }
以上がThinkPHP6 のフロントエンドミドルウェアとバックエンドミドルウェアの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







