>  기사  >  PHP 프레임워크  >  ThinkPHP6의 미들웨어 이해

ThinkPHP6의 미들웨어 이해

WBOY
WBOY원래의
2023-06-20 10:03:092189검색

현대 웹 애플리케이션의 복잡성이 계속해서 증가함에 따라 코드 논리도 점점 더 복잡해지고 있습니다. 이 문제를 해결하기 위해 현대 웹 개발에서는 미들웨어가 점점 더 대중화되고 있습니다. ThinkPHP6은 미들웨어도 지원하는 인기 있는 PHP 프레임워크입니다. 이 글에서는 ThinkPHP6 미들웨어의 기본과 실제 사용에 대해 논의하겠습니다.

미들웨어란 무엇인가요?

웹 개발에서 미들웨어는 HTTP 요청과 응답을 처리하는 방식을 말합니다. 클라이언트가 서버에 요청을 보내면 HTTP 요청은 여러 미들웨어를 거쳐 최종적으로 클라이언트에 응답을 반환합니다.

미들웨어는 요청이 대상 컨트롤러나 작업에 도착하기 전에 작동할 수 있으며, 대상 컨트롤러나 작업을 떠나기 전에 응답에 대해 작동할 수 있습니다. 이 접근 방식을 사용하면 애플리케이션 논리를 수정하지 않고도 추가 기능을 추가할 수 있습니다.

ThinkPHP6 미들웨어 기본 지식

ThinkPHP6에서는 미들웨어를 전역적으로 또는 필요에 따라 사용할 수 있습니다. 모든 미들웨어는 app/middleware 디렉토리에 저장됩니다.

미들웨어 기본 구조:

<?php
declare (strict_types=1);

namespace appmiddleware;

use thinkRequest;
use thinkResponse;

class SampleMiddleware
{
    public function handle(Request $request, Closure $next): Response
    {
        // do something before the controller action
        $response = $next($request);
        // do something after the controller action
        return $response;
    }
}

이 코드는 핸들 메소드가 필요한 가장 간단한 미들웨어를 보여줍니다. Request 객체와 클로저 $next를 받습니다. 클로저 내에서 다음 미들웨어나 대상 컨트롤러 또는 작업 메서드가 호출되고 마지막으로 응답이 반환됩니다. $next 호출 전후에 자체 논리를 추가할 수 있습니다.

미들웨어 구성:

// 全局中间件
return [
    // 使用定义的中间件类名称或闭包
    ppmiddlewareSampleMiddleware::class,
];
// 路由中间件
return [
    // 定义中间件名称和对应中间件类名称或闭包
    'auth' => ppmiddlewareAuth::class,
    // 为指定路由添加中间件
    'admin' => ['auth', 'log'],
];

실제 사용

아래에서는 간단한 예를 사용하여 ThinkPHP6에서 미들웨어를 사용하는 방법을 설명하겠습니다.

각 경로의 응답 시간을 기록해야 하는 웹 애플리케이션을 개발한다고 가정해 보겠습니다. 웹 프레임워크에 이 기능을 추가한다는 것은 모든 컨트롤러 메서드에 코드를 추가해야 한다는 것을 의미합니다. 미들웨어를 사용하면 컨트롤러 메서드에서 이 코드를 추출하고 코드를 단순화하며 유지 관리성을 향상시킬 수 있습니다.

  1. CustomMiddleware.php 파일을 생성합니다.
<?php
declare (strict_types=1);

namespace appmiddleware;

use thinkRequest;
use thinkResponse;

class CustomMiddleware
{
    public function handle(Request $request, Closure $next): Response
    {
        $startTime = microtime(true);
        $response = $next($request);
        $endTime = microtime(true);
        $response->header('X-Response-Time', $endTime - $startTime);
        return $response;
    }
}

이 미들웨어는 각 요청의 시작 시간과 종료 시간을 기록하고 응답 헤더에 응답 시간을 추가합니다.

  1. 애플리케이션에 미들웨어를 구성하세요.

app/middleware.php 파일에서 전역 미들웨어 또는 라우팅 미들웨어에 CustomMiddleware를 추가합니다.

// 全局中间件
return [
    ppmiddlewareCustomMiddleware::class,
];

또는 경로 정의에 지정된 경로에 대한 미들웨어를 추가하세요.

use appmiddlewareCustomMiddleware;

Route::get('hello/:name', 'index/hello')->middleware(CustomMiddleware::class);

이제 애플리케이션에 새로운 미들웨어를 성공적으로 추가했습니다. 요청이 이루어질 때마다 CustomMiddleware는 요청 시간과 응답 시간을 캡처하고 응답 헤더에 응답 시간을 추가합니다.

요약

미들웨어는 코드를 더 작고 집중된 구성 요소로 나누는 데 도움이 되는 웹 개발에 매우 ​​유용한 도구입니다. ThinkPHP6에서 미들웨어는 코드를 단순화하고 유지 관리성을 향상시키는 데 도움이 되는 강력한 기능입니다. 이 글이 ThinkPHP6 미들웨어의 개념과 실제 적용을 이해하는 데 도움이 되기를 바랍니다.

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

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