>PHP 프레임워크 >Laravel >Laravel 개발: Laravel 미들웨어를 사용하는 방법은 무엇입니까?

Laravel 개발: Laravel 미들웨어를 사용하는 방법은 무엇입니까?

王林
王林원래의
2023-06-14 13:19:481435검색

인기 있는 PHP 프레임워크인 Laravel은 개발 과정에서 미들웨어 미들웨어를 자주 사용합니다. 이 글에서는 Laravel 미들웨어 사용의 기본 사항과 사용자 정의 미들웨어를 생성하고 사용하는 방법을 다룹니다.

Laravel Middleware 미들웨어는 HTTP 요청을 필터링하는 메커니즘입니다. 이는 사용자 인증, 액세스 권한 부여 또는 요청 로깅과 같은 복잡한 HTTP 요청 논리를 처리하는 데 자주 사용됩니다.

Laravel에는 다음과 같은 내장 미들웨어가 함께 제공됩니다.

  • auth: 사용자가 로그인했는지 확인하는 데 사용됩니다.
  • throttle: 특정 기간 내에 사용자가 할 수 있는 요청 수를 제한하는 데 사용됩니다.

이 글에서는 Laravel의 자체 미들웨어를 사용하여 이러한 기본 개념을 보여드리겠습니다. 또한 사용자 정의 미들웨어를 만들어 자신만의 미들웨어를 작성하는 방법을 보여드리겠습니다.

내장 미들웨어 사용하기

먼저 Laravel에 내장된 미들웨어를 사용하는 방법을 살펴보겠습니다. 내장된 미들웨어를 사용하려면 $routeMiddleware 배열에 추가하기만 하면 됩니다. appHttpKernel.php 파일에서 이 배열을 찾을 수 있습니다. 이 배열에는 모든 기본 미들웨어가 포함되어 있으며 각 미들웨어에는 이와 관련된 키가 있습니다.

예를 들어, 인증 키 이름을 사용하여 인증 미들웨어를 활성화할 수 있습니다:

protected $routeMiddleware = [
    'auth' => IlluminateAuthMiddlewareAuthenticate::class,
];

Laravel은 매개변수화된 미들웨어 전달도 지원합니다. 예를 들어, throttle을 사용하여 사용자가 60초에 최대 5페이지에 액세스하도록 제한하려면 다음과 같이 작성할 수 있습니다.

protected $routeMiddleware = [
    'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class.':5,60',
];

참고: 여기에서 숫자의 순서는 throttle 미들웨어 생성자의 매개변수 순서와 반대입니다. 이는 Laravel이 매개변수를 문자열로 전달하는 것을 지원하기 때문입니다.

사용자 정의 미들웨어 생성

미리 정의된 미들웨어를 사용하는 것 외에도 Laravel은 자신만의 미들웨어 생성도 지원합니다. 맞춤형 미들웨어를 생성하고 사용하는 방법을 살펴보겠습니다.

이를 시연하기 위해 MyMiddleware라는 사용자 정의 미들웨어를 만듭니다. 이 미들웨어는 요청이 처리되기 전에 텍스트만 출력하면 됩니다.

먼저 artisan 명령을 통해 미들웨어 클래스를 생성해야 합니다:

php artisan make:middleware MyMiddleware

그런 다음 app/Http/Middleware/MyMiddleware.php 파일을 열고 핸들 메소드에 미들웨어 로직을 작성해야 합니다:

<?php

namespace AppHttpMiddleware;

use Closure;

class MyMiddleware
{
    public function handle($request, Closure $next)
    {
        echo "My middleware is working!";
        return $next($request);
    }
}

In 이 예에서는 요청을 처리하기 전에 텍스트만 출력하면 됩니다. 이 텍스트는 무엇이든 될 수 있습니다. 예를 들어 일부 디버깅 정보, 로그 또는 오류 메시지 등을 출력할 수 있습니다.

미들웨어를 작성한 후 Laravel 애플리케이션에 등록해야 합니다. app/Http/Kernel.php 파일에서 미들웨어 클래스 이름을 $routeMiddleware 배열에 추가할 수 있습니다. 이렇게 하면 경로와 컨트롤러에서 미들웨어를 사용할 수 있게 됩니다.

protected $routeMiddleware = [
    'mymiddleware' => AppHttpMiddlewareMyMiddleware::class,
];

참고: 보시다시피 나중에 경로와 컨트롤러에서 사용할 수 있도록 MyMiddleware 클래스의 이름을 키 이름으로 사용합니다.

이 새로운 미들웨어를 사용하려면 평소처럼 미들웨어 배열에 추가하면 됩니다. 우리의 경우 웹사이트의 경로에 다음을 추가할 수 있습니다:

Route::middleware(['mymiddleware'])->group(function () {
    // Your routes here
});

이제 애플리케이션에서 요청을 받으면 요청을 처리하기 전에 미들웨어가 먼저 호출됩니다.

요약

이 기사에서는 Laravel의 미들웨어에 대한 기본 사항을 논의하고 Laravel에 내장된 미들웨어를 사용하는 방법과 사용자 정의 미들웨어를 생성하고 사용하는 방법을 시연했습니다. 이는 단순한 예일 뿐이며 미들웨어의 개념은 매우 중요합니다. 미들웨어는 HTTP 요청 처리와 관련된 여러 가지 복잡한 문제를 해결하는 데 사용될 수 있습니다. 따라서 미들웨어 사용법을 배우는 것은 Laravel 개발 과정에서 매우 중요한 단계입니다.

위 내용은 Laravel 개발: Laravel 미들웨어를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.