Heim  >  Artikel  >  PHP-Framework  >  So erstellen Sie einen mittleren Schlüssel in Laravel

So erstellen Sie einen mittleren Schlüssel in Laravel

PHPz
PHPzOriginal
2023-04-11 15:05:28882Durchsuche

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.

Was ist Middleware?

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. authcsrfthrottle等。此外,开发者还可以创建自己的中间件来完成更特定的任务。

创建中间件

在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

Middleware erstellen

Das Erstellen von Middleware in Laravel ist sehr einfach. Sie müssen nur den folgenden Befehl ausführen, um eine neue Middleware zu generieren:

protected $routeMiddleware = [
    &#39;response_time&#39; => \App\Http\Middleware\ResponseTimeMiddleware::class,
];
#🎜🎜 #The Der obige Befehl erstellt eine neue Middleware-Klasse mit dem Namen 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.

#🎜🎜#Das Folgende ist ein einfaches Middleware-Beispiel zum Aufzeichnen der Antwortzeit einer Anfrage: #🎜🎜#
Route::get('/', function () {
    return view('welcome');
})->middleware('response_time');
#🎜🎜#Im obigen Beispiel zeichnen wir die Startzeit der Anfrage und die Antwortzeit auf wird nach Abschluss der Anfrage berechnet. Anschließend protokollieren wir die Antwortzeit im Anwendungsprotokoll und geben die Antwort zurück. #🎜🎜##🎜🎜#Middleware registrieren#🎜🎜##🎜🎜#Um Middleware zu verwenden, müssen Sie sie bei Ihrer Anwendung registrieren. Laravel bietet zwei Methoden zum Registrieren von Middleware. #🎜🎜#

Globale Middleware

#🎜🎜#Globale Middleware wird vor jedem Anforderungshandler ausgeführt. Um globale Middleware zu registrieren, öffnen Sie die Datei 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

Routing-Middleware

#🎜🎜#Routing-Middleware läuft nur auf der angegebenen Route. Um Routen-Middleware zu registrieren, fügen Sie den Kategorienamen im Attribut $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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn