>  기사  >  PHP 프레임워크  >  Laravel의 세 가지 미들웨어 기능

Laravel의 세 가지 미들웨어 기능

藏色散人
藏色散人앞으로
2021-05-26 16:10:442116검색

다음 laravel 튜토리얼 칼럼에서는 Laravel의 세 가지 미들웨어 기능을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

이전에는 미들웨어는 미들웨어에 미들웨어를 더하는 것이라고만 생각했습니다. 이제 저는 세 가지 유형의 미들웨어가 있다는 것을 알았습니다. 즉: $middleware $middlewareGroup $routeMiddleware 정보를 참조한 후 마침내 이 세 가지 유형의 기능과 차이점을 이해했습니다.

첫 번째 유형인 global middleware/$middleware:

모든 미들웨어는 우리가 요청할 때마다 실행됩니다.

두 번째 유형인 routing middleware/$routeMiddleware:

이 속성에 정의된 미들웨어는 경로 정의 시에만 참조할 수 있습니다.

우리가 정의한 라우팅 미들웨어라고 가정해보세요:

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

IlluminateAuthMiddlewareAuthenticate::class를 사용하려면 이 미들웨어를 다음과 같이 작성해야 합니다:

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

라우트를 정의할 때 미들웨어 메소드를 호출하고 매개변수 값은 다음과 같습니다. auth.Access this를 라우팅하면 미들웨어가 실행됩니다.

세 번째 유형인 Middleware Groups/$middlewareGroups:

위의 라우팅 미들웨어를 보면 이렇게 라우팅 미들웨어를 추가하는 것이 100 For 미들웨어를 실행하려면 매우 번거롭다는 것을 느낄 수 있습니다. 경로를 정의할 때 100을 추가해야 합니다. 하지만 미들웨어 그룹과 함께라면 그렇게 번거로울 필요는 없습니다! 미들웨어 그룹이 어떻게 정의되는지 살펴보겠습니다.

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/global middleware, 모든 요청에 ​​대해 일부 처리가 필요한 경우 이 속성에 정의하는 것이 적합합니다. (예를 들어 요청 수 계산)

$middlewareGroups/Middleware Groups 예를 들어 우리 프로젝트에 API 요청과 웹 요청이 있는 경우 두 가지 유형의 요청 미들웨어를 분리해야 합니다. 이때 미들웨어가 필요합니다. 그룹화.

$routeMiddleware/routing middleware, 일부 개별 요청의 경우, 특별한 미들웨어를 실행해야 하는 경우 이 속성에 정의하는 것이 적합합니다. **

관련 권장 사항: 최신 5개 Laravel 비디오 튜토리얼

위 내용은 Laravel의 세 가지 미들웨어 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제