検索
ホームページPHPフレームワークLaravelLaravel 開発: Laravel ミドルウェアの使用方法?

Laravel 開発: Laravel ミドルウェアの使用方法?

Jun 14, 2023 pm 01:19 PM
laravel開発するmiddleware

人気の PHP フレームワークである Laravel は、開発プロセス中に Middleware ミドルウェアをよく使用します。この記事では、Laravel ミドルウェアの使用の基本と、カスタム ミドルウェアの作成および使用方法について説明します。

Laravel ミドルウェア ミドルウェアは、HTTP リクエストをフィルタリングするためのメカニズムです。これらは、ユーザーの認証、アクセスの許可、リクエストのログ記録など、複雑な HTTP リクエスト ロジックを処理するためによく使用されます。

Laravel には、次のようないくつかの組み込みミドルウェアが付属しています。

  • auth: ユーザーがログインしているかどうかを確認するために使用されます。
  • throttle: ユーザーが一定期間内に実行できるリクエストの数を制限するために使用されます。

この記事では、Laravel 独自の Middleware ミドルウェアを使用して、これらの基本概念を説明します。さらに、カスタム ミドルウェアを作成して、独自のミドルウェアの作成方法を示します。

組み込みミドルウェアの使用

まず、Laravel で組み込みミドルウェアを使用する方法を見てみましょう。組み込みミドルウェアを使用するには、それを $routeMiddleware 配列に追加するだけです。この配列は appHttpKernel.php ファイルにあります。この配列にはすべてのデフォルトのミドルウェアが含まれており、各ミドルウェアにはそれに関連付けられたキーがあります。

たとえば、認証キー名を使用して認証ミドルウェアを有効にできます。

protected $routeMiddleware = [
    'auth' => IlluminateAuthMiddlewareAuthenticate::class,
];

Laravel は、ミドルウェアのパラメータ化された受け渡しもサポートしています。たとえば、スロットルを使用してユーザーが 60 秒以内に最大 5 ページにアクセスできるように制限したい場合は、次のように記述できます。

protected $routeMiddleware = [
    'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class.':5,60',
];

注: ここでの数字の順序は、スロットルミドルウェアコンストラクター。これは、Laravel がパラメータを文字列として渡すことをサポートしているためです。

カスタムミドルウェアの作成

Laravel は、事前定義されたミドルウェアの使用に加えて、独自のミドルウェアの作成もサポートしています。カスタムミドルウェアを作成して使用する方法を見てみましょう。

これを実証するために、MyMiddleware というカスタム ミドルウェアを作成します。このミドルウェアは、リクエストが処理される前にテキストを出力するだけで済みます。

まず、artisan コマンドを使用してミドルウェア クラスを作成する必要があります:

php artisan make:middleware MyMiddleware

次に、app/Http/Middleware/MyMiddleware.php ファイルを開いて、ミドルウェア ロジックを記述する必要があります。

<?php

namespace AppHttpMiddleware;

use Closure;

class MyMiddleware
{
    public function handle($request, Closure $next)
    {
        echo "My middleware is working!";
        return $next($request);
    }
}

この例では、リクエストを処理する前にテキストを出力するだけで済みます。このテキストには何でも構いません。たとえば、デバッグ情報、ログ、エラー メッセージなどを出力できます。

ミドルウェアを作成した後、それをLaravelアプリケーションに登録する必要があります。 app/Http/Kernel.php ファイルで、ミドルウェア クラス名を $routeMiddleware 配列に追加できます。これにより、ルートとコントローラーでミドルウェアが使用できるようになります。

protected $routeMiddleware = [
    'mymiddleware' => AppHttpMiddlewareMyMiddleware::class,
];

注: ご覧のとおり、後続のルートとコントローラーで使用するキー名として MyMiddleware クラスの名前を使用します。

この新しいミドルウェアを使用するには、通常どおりミドルウェア配列に追加するだけです。私たちの場合、これを Web サイトのルートに追加できます:

Route::middleware(['mymiddleware'])->group(function () {
    // Your routes here
});

これで、アプリケーションからリクエストを受信すると、最初にミドルウェアが呼び出され、次にリクエスト処理が行われます。

概要

この記事では、Laravel のミドルウェアの基本について説明し、Laravel の組み込みミドルウェアの使用方法とカスタム ミドルウェアの作成方法と使用方法を説明しました。ミドルウェア。これは単純な例にすぎません。ミドルウェアの概念は非常に重要であり、HTTP リクエストの処理に関する多くの複雑な問題を解決するために使用できます。したがって、ミドルウェアの使用方法を学ぶことは、Laravel 開発プロセスにおいて非常に重要なステップです。

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptフレームワーク(React、Vue、Angular)とLaravelバックエンドの統合JavaScriptフレームワーク(React、Vue、Angular)とLaravelバックエンドの統合May 03, 2025 am 12:20 AM

反応、vue、andangularcanbe veintedated withlaravelbyfollowingspecificsetupSteps.1)forReact:instruectusinglaravelui、setUpComponentsInapp.js.2)forvue:uselaravel'sbuilt-invuesuptort、futureinapp.3)

タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡May 02, 2025 am 12:25 AM

Taskmanagementtoolsareessentialforeffectiveremoteprojectmanagementbyprioritizingtasksandtrackingprogress.1)UsetoolslikeTrelloandAsanatosetprioritieswithlabelsortags.2)EmploytoolslikeJiraandMonday.comforvisualtrackingwithGanttchartsandprogressbars.3)K

最新のLaravelバージョンはパフォーマンスをどのように改善しますか?最新のLaravelバージョンはパフォーマンスをどのように改善しますか?May 02, 2025 am 12:24 AM

laravel10EnhancesperformAnceTheveralkeyfeatures.1)ItintroduceSquerybuilderCachinucedatedatabaseload.2)itoptimizeseLoquentModelloadingwithlazingproxies.3)itimprovesRoutingWithineSystem.4)itemproveStingwithingingSystem.4)

フルスタックのLaravelアプリケーションの展開戦略フルスタックのLaravelアプリケーションの展開戦略May 02, 2025 am 12:22 AM

最高のフルスタックのLaravelアプリケーション展開戦略には、1。Zeroダウンタイム展開、2。ブルーグリーン展開、3。連続展開、4。Canaryリリースが含まれます。 1.ゼロダウンタイムデプロイメントは、EnvoyまたはDeployerを使用して展開プロセスを自動化して、更新時にアプリケーションを利用できるようにします。 2。ブルーとグリーンの展開により、2つの環境を維持し、迅速なロールバックを可能にすることにより、ダウンタイムの展開が可能になります。 3.継続的な展開GithubactionsまたはGitlabci/CDを使用して、展開プロセス全体を自動化します。 4。nginx構成を通じてカナリーがリリースされ、パフォーマンスの最適化と迅速なロールバックを確保するために、新しいバージョンをユーザーに徐々に宣伝します。

フルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックフルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックMay 02, 2025 am 12:22 AM

ToscalealAravelApplicationively、Focusondatabasesharding、Caching、Loadbalancing、andMicroservices.1)databaseShardingTodistributedataacrossMultipledatabase.2)uselaraval'scachingsmultedistestemedisemememememememedtededatedatab

静かな闘争:分散型チームのコミュニケーションの障壁を克服します静かな闘争:分散型チームのコミュニケーションの障壁を克服しますMay 02, 2025 am 12:20 AM

ToovercomcomcommunicationbarriersindistributedTeams、使用:1)VideoCallsForface-to-faceInteraction、2)setClearResponsetimeExpectations、3)ChooseaprateCommunicationSoools、4)CreateAmCommunicationGuide、and5)

フルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますフルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますMay 01, 2025 am 12:24 AM

laravelbladeEnhancesFrontendTemplatinginfull stackprojectsbyofferingcleansyntaxandpowerfulfeatures.1)itallows foreasyvariabledisplayandcontrolstructures.2)bladeSupportscreating andReusing components、

Laravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルLaravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルMay 01, 2025 am 12:23 AM

laravelisidealforfull-stackapplicationsduetoitseLegantyntax、包括的なセコスシステム、およびパワーフルフィーチュア

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。