ホームページ > PHPフレームワーク > Laravel > laravelミドルウェアの用途は何ですか?

laravelミドルウェアの用途は何ですか?

WBOY
リリース: 2022-04-07 16:54:00
オリジナル
3019 人が閲覧しました

laravel では、ミドルウェアの役割は HTTP リクエストをフィルタリングし、さまざまなリクエストに応じてさまざまな論理操作を実行することです。ミドルウェアはリクエスト データをインターセプトして処理し、データを検査し、論理処理を実行して、HTTP リクエストへのエントリを許可するかどうかを判断できます。次のミドルウェア。

laravelミドルウェアの用途は何ですか?

#この記事の動作環境: Windows 10 システム、Laravel バージョン 6、Dell G3 コンピューター。

laravelのミドルウェアの用途について

ミドルウェアはその名の通り、リクエストデータをインターセプトして処理し、データを検証し、リクエストとレスポンスの間の論理的な処理を行った上でエントリを許可するかどうかを決定します。ミドルウェア; ミドルウェアはプレフィックスミドルウェアとポストミドルウェアに分かれており、権限認証やロギングなどに利用できます。

簡単に言えば、laravelにおけるミドルウェアの役割は、HTTPリクエストをフィルタリングし、さまざまなリクエストに基づいてさまざまな論理操作を実行することです。

ミドルウェアを通じて次の機能を実現できます:

  • 特定のルートを指定します

  • HTTP の設定応答ヘッダー

  • リクエストの記録

  • リクエスト パラメーターのフィルタリング

  • サイト メンテナンス モードを有効にするかどうかの決定

  • 応答の前後に必要な操作をいくつか実行します

カスタム ミドルウェア

コマンド ライン次の簡単なコマンドを実行することで、新しいミドルウェアを簡単に作成できます。

php artisan make:middleware <MiddlewareName>
//MiddlewareName 就是你要创建的中间件的名字
ログイン後にコピー

上記のコマンドを実行すると、Laravel は、handle メソッドのみを含むミドルウェアを app/Http/Middleware ディレクトリに自動的に作成します。

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}
ログイン後にコピー

ミドルウェアが呼び出されると、handle メソッドが実行されます。ここで注意する必要があるのは、handle メソッドにはデフォルトで $request と $next の 2 つのパラメータがあることです。 $request はアプリケーションのリクエスト グループを受け入れるために使用され、$next はリクエストをアプリケーションに渡します。これら 2 つのパラメータはハンドルに不可欠です。ミドルウェアには、プレミドルウェアとポストミドルウェアも含まれます。

「プレミドルウェア」は、その名前が示すように、リクエストをアプリケーションに転送する前にいくつかのロジックを処理します。一方、After ミドルウェアは、アプリケーションがリクエストを処理し、レスポンスを生成した後に実行されます。

プレミドルウェア:

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        //你的逻辑就在这里
        return $next($request);
    }
}
ログイン後にコピー

ポストミドルウェア:

<?php
namespace App\Http\Middleware;
use Closure;
class RedirectIfSuperAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $response = $next($request);
        //你的逻辑就在这里 例如 重定向到  `/`
        return $response;
    }
}
ログイン後にコピー

laravelミドルウェアの用途は何ですか?

[関連する推奨事項: laravel ビデオチュートリアル ]

以上がlaravelミドルウェアの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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