Laravel 5.1 프레임 워 크 Middleware 미들웨어 기본 용법 사례 분석

본 논문 의 사례 는 Laravel 5.1 프레임 워 크 Middleware 미들웨어 미들웨어 의 기본 적 인 용법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
중간 부품무슨 귀신 이 야?모두 가 이 단 어 를 처음 접 했 을 때 이런 의문 이 있 었 지만,그것 은 사실 그렇게 신 비 롭 지 않 았 다.
한 마디 로 설명 할 수 있 습 니 다.HTTP 요청 전용 메커니즘 을 걸 러 냅 니 다.
미들웨어 를 왜 사용 합 니까?
필터 HTTP 요청 은 다른 곳 에 쓸 수 있 습 니 다.예 를 들 어 컨트롤 러 의 경로 에서 BUT 가 추상 화 된 데 는 이유 가 있 습 니 다.예 를 들 어 Laravel 이 자체 적 으로 가지 고 있 는 Auth 미들웨어 는 로그 인 한 사용자 가 방문 해 야 로그 인 하지 않 으 면 로그 인 페이지 로 이동 할 수 있 습 니 다.이러한 논 리 는 많은 장면 에서 사용 된다 는 것 이 분명 하 죠?모든 컨트롤 러 나 모든 경로 에서 단독으로 이 루어 질 수 는 없 으 니 직접 추출 하 는 것 이 얼마나 편리 합 니까?
1.미들웨어 사용
1.1 미들웨어 만 들 기
우리 가 중간 부품 을 만 드 는 것 은 artisan 콘 솔 을 사용 하 는 것 입 니 다:

php artisan make:middleware TestMiddleware

생 성 후 위치:app/Http/Middleware
1.2 중간 부품 해독
우선 새로 만 든 미들웨어 가 어떤 모습 인지 살 펴 보 자.

class TestMiddleware
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    return $next($request);
  }
}

판독:middleware 에"handle"함수 만 있 습 니 다.이 함 수 는 두 개의 인 자 를 받 습 니 다.
이 프로 세 스 는 request 매개 변 수 를 받 아 무언 가 를 꺼 내 검증 하 는 것 입 니 다.
아직도 잘 모 르 시 면 괜 찮 습 니 다.실례 를 들 어 보 겠 습 니 다.
1.3 중간 부품 작성

  public function handle($request, Closure $next)
  {
    //      id    0       。
    if ($request->input('id') == 0){
      return redirect('/');
    }
    // id     0                。
    return $next($request);
  }

끝나 면 app/Http/Kernel.php 에 등록 해 야 합 니 다.

  /**
   * The application's global HTTP middleware stack.
   *
   * @var array
   */
  protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
  ];
  /**
   * The application's route middleware.
   *
   * @var array
   */
  protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    //       middleware     
    'test' => \App\Http\Middleware\TestMiddleware::class,
  ];

메모:볼 수 있 습 니 다.Kernel 에 두 개의 배열 이 있 습 니 다.전역 에서 사용 하고 싶 으 면 middleware 배열 에 등록 하 십시오.부분 적 으로 middleware 를 사용 하려 면 routeMiddleware 배열 에 등록 하 십시오.
1.4 미들웨어 사용
자,등록 이 끝 난 후에 우리 가 사용 합 시다.

Route::get('/test-middleware',['middleware'=>'test',function(){
  return 'HI';
}]);

우리 가 입력 하면:http://localhost:8000/test-middleware?id=1 을 입력 할 때 페이지 에 HI 를 출력 합 니 다.http://localhost:8000/test-middleware?id=0 시 홈 페이지 로 돌아 갑 니 다.
Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기