Mit der kontinuierlichen Entwicklung des Internets und von Webanwendungen entstehen auch Webentwicklungs-Frameworks. Unter ihnen ist das Laravel-Framework weithin anerkannt und verwendet. Das Laravel-Framework bietet Entwicklern die wichtige Funktion der Middleware, mit der Anforderungen in Anwendungen gefiltert und verarbeitet werden, wodurch die Entwicklungseffizienz und -sicherheit effektiv verbessert wird. In diesem Artikel wird der Implementierungsprozess der Laravel-Middleware ausführlich vorgestellt, um Entwicklern zu helfen, diese Funktion besser zu verstehen und anzuwenden.
1. Was ist Middleware? Im Laravel-Framework bezieht sich Middleware (Middleware) auf einen Mechanismus zum Filtern und Verarbeiten von HTTP-Anfragen, die in die Anwendung eingehen, ähnlich wie gängige Interceptoren und Filter im Codekonzept. Unter normalen Umständen übernimmt Middleware einige allgemeine Verarbeitungsaufgaben, wie zum Beispiel:
ist für die Authentifizierung von Anfragen verantwortlich;Der Middleware-Mechanismus des Laravel-Frameworks basiert auf dem PSR-15-Standard. In Laravel besteht Middleware im Allgemeinen aus zwei Teilen: Middleware-Klasse und Middleware-Aufruf. Als nächstes stellen wir diese beiden Teile jeweils im Detail vor.
Middleware-Klasse<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class MyMiddleware { /** * Handle an incoming request. * * @param IlluminateHttpRequest $request * @param Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { // 判断当前请求是否携带token if (!$request->header('Authorization')) { return response()->json(['message' => 'Unauthorized'], 401); } // 执行下一个中间件或应用程序 return $next($request); } }
Im obigen Code definieren wir eine Middleware-Klasse mit dem Namen MyMiddleware, die bestimmt, ob die Anfrage die Authorization-Header-Informationen enthält. Wenn sie diese nicht enthält, gibt sie eine nicht autorisierte Antwort zurück , führt es die nächste Middleware oder Anwendung aus.
Middleware-Aufruf// app/Http/Kernel.php protected $middleware = [ AppHttpMiddlewareMyMiddleware::class, ];
// routes/web.php use AppHttpMiddlewareMyMiddleware; Route::get('/user', function () { // })->middleware(MyMiddleware::class);
Wenn eine Anfrage in die Laravel-Anwendung eingeht, ruft das Laravel-Framework diese Middleware-Klassen in der Reihenfolge auf, in der die Middleware eingeführt wird, und führt dann ihre Prozessmethode aus. Aufgrund der Zusammensetzung der Middleware-Kette ist die Bedienung vor oder nach der Verarbeitung der Anfrage einfach.
Der Middleware-Planungsprozess des Laravel-Frameworks ist wie folgt:
Die Anforderung geht in die Anwendung ein, wird von der HttpKernel-Middleware verarbeitet und das Anforderungsobjekt (IlluminateHttpRequest-Instanz) wird erstellt. Rufen Sie die globale Middleware auf. Wenn die erste Middleware ausgeführt werden muss, wird die Prozessmethode der Middleware ausgeführt.Das obige ist der detaillierte Inhalt vonImplementierungsprozess der Laravel-Middleware. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!