Laravel ist ein beliebtes PHP-Framework, das viele Funktionen und Tools bietet, um Entwicklern die Erstellung hochwertiger Webanwendungen zu erleichtern. Eine bemerkenswerte Funktion ist die Middleware, die es Entwicklern ermöglicht, bestimmte Aktionen auszuführen, bevor die Anfrage ihr endgültiges Ziel in der Anwendung erreicht. In diesem Artikel erfahren Sie, wie Sie Laravel-Middleware erstellen.
Middleware ist eine Möglichkeit, Routing-Anfragen abzufangen. Wenn die Anwendung eine Anfrage empfängt, führt die Middleware eine Reihe von Vorgängen aus, um die Anfrage zu ändern und zu steuern. Middleware kann für verschiedene Vorgänge wie Authentifizierung, Zugriffskontrolle, Caching und mehr verwendet werden.
Laravel wird mit einiger Middleware geliefert, wie z. B. auth
, csrf
, throttle
usw. Darüber hinaus können Entwickler ihre eigene Middleware erstellen, um spezifischere Aufgaben zu erfüllen. auth
,csrf
,throttle
等。此外,开发者还可以创建自己的中间件来完成更特定的任务。
在Laravel中创建中间件非常简单,只需要执行以下命令即可生成一个新的中间件:
php artisan make:middleware MyMiddleware
以上命令将会在app/Http/Middleware
目录下创建一个名为MyMiddleware
的新中间件类。该类将包含两个方法:handle()
和__construct()
。
handle()
方法是中间件的核心,它定义了中间件被执行时需要执行的操作。handle()
方法将接收两个参数:请求对象和一个回调闭包。通常情况下,中间件会修改请求并将其传递给下一个处理程序。
以下是一个简单的中间件示例,用于记录请求的响应时间:
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Log; class ResponseTimeMiddleware { public function handle($request, Closure $next) { $start_time = microtime(true); $response = $next($request); $end_time = microtime(true); $response_time = round(($end_time - $start_time) * 1000, 2); Log::info("Response time: {$response_time}ms"); return $response; } }
在上面的示例中,我们记录了请求的开始时间,并在请求结束后计算响应时间。然后,我们将响应时间记录到应用程序日志中,并将响应返回。
要使用中间件,需要将其注册到应用程序中。Laravel提供了两种方法来注册中间件。
全局中间件将在每个请求处理程序之前运行。要注册全局中间件,请打开app/Http/Kernel.php
文件,并将类添加到$middleware
属性中。
例如,要注册我们之前创建的ResponseTimeMiddleware
中间件,我们可以将以下代码添加到$middleware
数组中:
protected $middleware = [ \App\Http\Middleware\ResponseTimeMiddleware::class ];
路由中间件仅在指定路由上运行。要注册路由中间件,请在app/Http/Kernel.php
文件中的$routeMiddleware
属性中添加类别名。
例如,要注册之前创建的ResponseTimeMiddleware
中间件,我们可以将以下代码添加到$routeMiddleware
protected $routeMiddleware = [ 'response_time' => \App\Http\Middleware\ResponseTimeMiddleware::class, ];
MyMiddleware
im Verzeichnis app/Http/Middleware
. Diese Klasse enthält zwei Methoden: handle()
und __construct()
. Die Methode handle()
ist der Kern der Middleware und definiert die Vorgänge, die ausgeführt werden müssen, wenn die Middleware ausgeführt wird. Die Methode handle()
erhält zwei Parameter: das Anforderungsobjekt und einen Callback-Abschluss. Normalerweise ändert Middleware die Anfrage und übergibt sie an den nächsten Handler.
Route::get('/', function () { return view('welcome'); })->middleware('response_time');
app/Http/Kernel.php
und fügen Sie die Klasse zum Attribut $middleware
hinzu. #🎜🎜##🎜🎜#Um beispielsweise die Middleware ResponseTimeMiddleware
zu registrieren, die wir zuvor erstellt haben, können wir den folgenden Code zum Array $middleware
hinzufügen: #🎜🎜# rrreee$routeMiddleware
in der Datei app/Http/Kernel.php
hinzu. #🎜🎜##🎜🎜#Um beispielsweise die zuvor erstellte Middleware ResponseTimeMiddleware
zu registrieren, können wir den folgenden Code zum Array $routeMiddleware
hinzufügen: #🎜🎜#rrreee #🎜🎜#In der Routing-Datei können wir den Kategorienamen verwenden, um die zu verwendende Middleware anzugeben: #🎜🎜#rrreee#🎜🎜#Fazit #🎜🎜##🎜🎜#Middleware ist eine leistungsstarke Funktion des Laravel-Frameworks Es ermöglicht Entwicklern, Anfragen zu ändern und zu kontrollieren, bevor die Anwendung sie ausführt. In diesem Artikel haben wir die Erstellung und Registrierung von Laravel-Middleware und deren Verwendung in Ihrer Anwendung untersucht. Wenn Sie noch nie Middleware verwendet haben, empfehle ich Ihnen, sich etwas Zeit zu nehmen, um sie zu erlernen und mit der Verwendung zu beginnen. #🎜🎜#Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen mittleren Schlüssel in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!