【초보자】Laravel의 미들웨어는

소개



"Laravel의 미들웨어는 누구입니까?"라는 레벨의 초학자가
싹둑 조사하고 싹둑 정리했습니다. (Laravel6계입니다.)

미들웨어는



Laravel의 미들웨어는 컨트롤러 클래스의 처리 전후에 위치하며, 주로 HTTP 요청의 필터링이나 HTTP 응답의 변경을 담당한다. 인증 및 CSRF 보호 등의 미들웨어가 준비되어 있어 app/Http/Middleware 디렉토리에 설치되어 있다.



그리고 미들웨어는 자작 할 수 ..!!

생성 절차 (Laravel6)



1.artisan 명령으로 미들웨어 클래스 만들기
2. 미들웨어 클래스 편집
3. 미들웨어 클래스 등록

1.artisan 명령으로 미들웨어 클래스 만들기


php artisan make:middleware HogeMiddleware

이 명령을 실행하면 app/Http/Middleware/HogeMiddleware.php가 생성됩니다.

2. 미들웨어 클래스 편집



생성된 HogeMiddleware.php는 다음과 같이 되어 있으므로,
handle() 속에 처리를 써 간다.

app/Http/Middleware/HogeMiddleware.php
<?php
namespace App\Http\Middleware;

use Closure;

class HogeMiddleware {

  public function handle($request, Closure $next)
  {
    //処理を記述

    return $next($request);
  }
}


3. 미들웨어 클래스 등록



작성한 미들웨어 클래스를 사용하려면 ,Kernel.php에 기술할 필요가 있다.
일부 생략하고 있지만 Kernel.php는 디폴트에서는 아래와 같이 되어 있다. 방금 만든 HogeMiddleware 클래스를 $middle 내에 추가했다.

app/Http/Kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\HogeMiddleware::class,   //こんな感じに追加
        ...
    ];

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            ...
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ...
    ];

    protected $middlewarePriority = [
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\Authenticate::class,
        ...
    ];
}


$middleware



모든 처리에 대해 반드시 실행됩니다.

$middlewareGroups



배열로서 그룹명과 그 배열 내에 그룹화하고 싶은 미들웨어를 등록해 간다.
기본적으로 web와 api가 설정되어 있다. 웹 미들웨어 그룹은 route/web.php의 처리에 대해 실행됩니다. (RouteServiceProvider에서 설정할 수있는 것 같습니다)

$routeMiddleware



미리 키를 할당해 두는 것으로, Route나 Controller로 간단하게 사용할 수 있다.
Route::get('admin/profile', function () {
  //処理
})->middleware('auth');

$middlewarePriority



미들웨어 우선 순위를 지정할 수 있습니다.

참고:
htps : // ぁらゔぇl. 이 m/도 cs/6. x / 미 d
htps : // m / 쿠리 카즈 / ms / 0c57f050f5d f02b23

이제 요청시 또는 응답 할 때 필터링 기능을 사용할 수 있습니다 ..!!

좋은 웹페이지 즐겨찾기