Heim > PHP-Framework > Denken Sie an PHP > Die Middleware von ThinkPHP6 verstehen

Die Middleware von ThinkPHP6 verstehen

WBOY
Freigeben: 2023-06-20 10:03:09
Original
2247 Leute haben es durchsucht

Da die Komplexität moderner Webanwendungen immer weiter zunimmt, wird auch die Codelogik immer komplexer. Um dieses Problem zu lösen, wird Middleware in der modernen Webentwicklung immer beliebter. ThinkPHP6 ist ein beliebtes PHP-Framework, das auch Middleware unterstützt. In diesem Artikel besprechen wir die Grundlagen und praktischen Einsatzmöglichkeiten der ThinkPHP6-Middleware.

Was ist Middleware?

In der Webentwicklung bezeichnet Middleware eine Möglichkeit zur Verarbeitung von HTTP-Anfragen und -Antworten. Wenn der Client eine Anfrage an den Server sendet, durchläuft die HTTP-Anfrage mehrere Middlewares und gibt schließlich eine Antwort an den Client zurück.

Middleware kann Anfragen bearbeiten, bevor sie den Zielcontroller oder die Zielaktion erreichen, und sie kann Antworten bearbeiten, bevor sie den Zielcontroller oder die Zielaktion verlassen. Dieser Ansatz ermöglicht es uns, zusätzliche Funktionalität hinzuzufügen, ohne die Anwendungslogik zu ändern.

Grundkenntnisse der ThinkPHP6-Middleware

In ThinkPHP6 kann Middleware global oder nach Bedarf eingesetzt werden. Die gesamte Middleware wird im Verzeichnis app/middleware gespeichert.

Grundstruktur der Middleware:

<?php
declare (strict_types=1);

namespace appmiddleware;

use thinkRequest;
use thinkResponse;

class SampleMiddleware
{
    public function handle(Request $request, Closure $next): Response
    {
        // do something before the controller action
        $response = $next($request);
        // do something after the controller action
        return $response;
    }
}
Nach dem Login kopieren

Dieser Code demonstriert die einfachste Middleware, in der die Handle-Methode erforderlich ist. Es empfängt ein Request-Objekt und einen Abschluss $next. Innerhalb des Abschlusses wird die nächste Middleware oder der nächste Zielcontroller oder die nächste Aktionsmethode aufgerufen und schließlich die Antwort zurückgegeben. Wir können unsere eigene Logik vor und nach dem $next-Aufruf hinzufügen.

Middleware konfigurieren:

// 全局中间件
return [
    // 使用定义的中间件类名称或闭包
    ppmiddlewareSampleMiddleware::class,
];
Nach dem Login kopieren
// 路由中间件
return [
    // 定义中间件名称和对应中间件类名称或闭包
    'auth' => ppmiddlewareAuth::class,
    // 为指定路由添加中间件
    'admin' => ['auth', 'log'],
];
Nach dem Login kopieren

Tatsächliche Verwendung

Im Folgenden veranschaulichen wir anhand eines einfachen Beispiels, wie Middleware in ThinkPHP6 verwendet wird.

Angenommen, wir entwickeln eine Webanwendung, in der wir die Reaktionszeit jeder Route aufzeichnen müssen. Das Hinzufügen dieser Funktionalität in einem Webframework bedeutet, dass wir in jeder Controller-Methode Code hinzufügen müssen. Mithilfe von Middleware kann dieser Code aus der Controller-Methode extrahiert, der Code vereinfacht und die Wartbarkeit verbessert werden.

  1. Erstellen Sie eine CustomMiddleware.php-Datei.
<?php
declare (strict_types=1);

namespace appmiddleware;

use thinkRequest;
use thinkResponse;

class CustomMiddleware
{
    public function handle(Request $request, Closure $next): Response
    {
        $startTime = microtime(true);
        $response = $next($request);
        $endTime = microtime(true);
        $response->header('X-Response-Time', $endTime - $startTime);
        return $response;
    }
}
Nach dem Login kopieren

Diese Middleware zeichnet die Start- und Endzeit jeder Anfrage auf und fügt die Antwortzeit zum Antwortheader hinzu.

  1. Middleware in der Anwendung konfigurieren.

In der Datei app/middleware.php fügen Sie CustomMiddleware zur globalen Middleware oder Routing-Middleware hinzu.

// 全局中间件
return [
    ppmiddlewareCustomMiddleware::class,
];
Nach dem Login kopieren

Oder fügen Sie Middleware für die angegebene Route in der Routendefinition hinzu.

use appmiddlewareCustomMiddleware;

Route::get('hello/:name', 'index/hello')->middleware(CustomMiddleware::class);
Nach dem Login kopieren

Jetzt haben wir der Anwendung erfolgreich eine neue Middleware hinzugefügt. Bei jeder Anfrage erfasst CustomMiddleware die Anfrage- und Antwortzeit und fügt die Antwortzeit dem Antwortheader hinzu.

Zusammenfassung

Middleware ist ein sehr nützliches Tool in der Webentwicklung, das uns dabei helfen kann, unseren Code in kleinere, fokussiertere Komponenten zu unterteilen. In ThinkPHP6 ist Middleware eine leistungsstarke Funktion, die uns helfen kann, den Code zu vereinfachen und die Wartbarkeit zu verbessern. Ich hoffe, dieser Artikel kann Ihnen helfen, die Idee der ThinkPHP6-Middleware und ihre praktische Anwendung zu verstehen.

Das obige ist der detaillierte Inhalt vonDie Middleware von ThinkPHP6 verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage