Роль трех промежуточных программ Laravel

Свойство $middleware:

Этот атрибут называется глобальным промежуточным программным обеспечением. Почему он называется глобальным промежуточным программным обеспечением? Потому что каждый раз, когда вы запрашиваете, каждое промежуточное программное обеспечение в нем будет выполнено.

Свойство $routeMiddleware:

Этот атрибут называется промежуточным программным обеспечением маршрутизации. Почему он называется промежуточным программным обеспечением маршрутизации? Поскольку на промежуточное программное обеспечение, определенное в этом атрибуте, можно ссылаться только при определении маршрутов.

Допустим, это определено нашим промежуточным программным обеспечением маршрутизации:

protected $routeMiddleware = [
    ...
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
];

Что, если мы хотим использовать промежуточное ПО \Illuminate\Auth\Middleware\Authenticate::class?

Route::get('hello/laravel-china','XXController@index')->middleware('auth');

Когда мы определили маршрут, мы вызвали метод промежуточного программного обеспечения, а значение параметра — auth, чтобы при доступе к этому маршруту выполнялось промежуточное программное обеспечение. Понимать! Очень просто.

Свойство $middlewareGroups:

Этот атрибут называется группой промежуточного программного обеспечения. Почему он называется группой промежуточного программного обеспечения? Ранее мы говорили о промежуточном программном обеспечении маршрутизации. Считаете ли вы, что добавление промежуточного программного обеспечения маршрутизации является затруднительным? Например, если мы выполняем 10 промежуточных программ, нужно ли нам добавлять 10 при определении маршрутов? С группой промежуточного программного обеспечения такой проблемы нет. Давайте посмотрим, как определяется группа промежуточного программного обеспечения.

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        ...
    ],
    'api' => [
        ...
    ],
];

Что ж, приведенный выше пример предназначен для определения формата группы промежуточного программного обеспечения. Например, если мы посмотрим на значение ключа web, оно соответствует массиву, а массив состоит из нескольких промежуточных программ. Как мы должны его использовать после того, как мы его определили?
Когда мы объявляем маршрут, мы можем назвать его так.

Route::group(['middleware' => 'web'],function($route){
    $route->get('hello/world',function(){});
    $route->get('hello/php',function(){});
    // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件,方便多了,批量式的。
});

Подведем итог:

$middleware: глобальное промежуточное программное обеспечение, когда необходимо выполнить некоторую обработку всех запросов, его удобно определить в этом свойстве. (например, подсчет количества запросов)
$middlewareGroups: группа промежуточного программного обеспечения, например, когда в нашем проекте есть запросы API и веб-запросы, нам необходимо разделить два типа промежуточного программного обеспечения запросов, и в это время необходима наша группа промежуточного программного обеспечения.
$routeMiddleware: промежуточное программное обеспечение маршрутизации, некоторые отдельные запросы, когда нам нужно выполнить специальное промежуточное программное обеспечение, его удобно определить в этом свойстве.

Guess you like

Origin blog.csdn.net/Quiet_tomcat/article/details/91127527