Heim  >  Artikel  >  PHP-Framework  >  Lassen Sie uns über die verschiedenen Middleware in ThinkPHP6 sprechen

Lassen Sie uns über die verschiedenen Middleware in ThinkPHP6 sprechen

王雪芹
王雪芹Original
2020-05-06 17:18:082219Durchsuche

In ThinkPHP6 gibt es eine neue Middleware-Funktion, und viele Anfänger haben Schwierigkeiten mit der ThinkPHP6-Middleware. Ich werde sie Ihnen im Folgenden vorstellen.

Globale Middleware:

Nachdem wir das ThinkPHP6-Framework heruntergeladen haben, gibt es eine middleware.php im App-Verzeichnis. Die in der definierte Middleware Das Verzeichnis heißt globale Middleware. Globale Middleware ist Middleware, die für alle Anwendungen wirksam ist.

Anwendungs-Middleware:

Mit anderen Worten, wenn wir eine weitere Kopie von middleware.php kopieren und sie unter einer Anwendung platzieren, beispielsweise einem Index Anwendung, heißt es Anwendungs-Middleware? Die Antwort ist richtig.

Controller-Middleware:

Wenn Middleware im Controller betrieben wird, heißt sie dann Controller-Middleware?

Routing-Middleware:

Kann ich auch Middleware im Routing definieren, z. B. möchte ich nur eine bestimmte Anfrage Wenn Sie Wenn bestimmte Middleware verwendet wird und andere keine Middleware verwenden möchten, gibt es Routing-Middleware.

Wenn alle Arten von Middleware für dieselbe Anfrage definiert sind, wie ist die Ausführungsreihenfolge?

Globale Middleware->Anwendungs-Middleware->Route-Middleware->Controller-Middleware

Als nächstes schauen wir uns ein Beispiel an.

Globale Middleware:

 public function handle($request, \Closure $next)
    {
        echo 'app全局中间件';
        return $next($request);
    }

Anwendungs-Middleware:

public function handle($request, \Closure $next)
    {
        echo '应用中间件';
        return $next($request);
    }

Routing-Middleware:

Route::rule('hello','index/hello')
->middleware(\app\middleware\Auth::class);

Controller-Middleware:

Bevor wir die Controller-Middleware verwenden, definieren wir zunächst den Alias ​​und definieren den Alias ​​in configmiddleware.php im Stammverzeichnis. Dieser Alias ​​dient eigentlich dazu, eine Alias-ID hinzuzufügen. Nachdem der Alias ​​definiert wurde, kann er nicht nur in der Controller-Middleware, sondern auch in der Routing-Middleware verwendet werden.

return [
    'alias' => [
        'auth1' => app\middleware\Auth1::class,
    ],
];

Wenn wir die Alias-Middleware hier definieren, müssen wir sie nicht in middleware.php deklarieren. Stattdessen verwenden wir die Alias-Definition im Steuerelement:

class Index
{
    protected $middleware = ['auth1'];
    public function index()
    {
       return 'index';
    }
    public function hello()
    {
       echo 'hello方法';
    }
}

Zu diesem Zeitpunkt haben wir Greifen Sie auf die Hallo-Methode zu. Die Ausgabe lautet:

App Global Middleware

Anwendungs-Middleware

Routing-Middleware

Controller-Middleware

Hallo-Methode

Das Obige ist eine Einführung in die verschiedenen Middlewares von ThinkPHP6. Tatsächlich sind die verschiedenen Middlewares nicht schwer zu verstehen, vor allem, weil sich jeder über die Reihenfolge im Klaren sein muss Hinrichtung zwischen ihnen.

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die verschiedenen Middleware in ThinkPHP6 sprechen. 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