>  기사  >  PHP 프레임워크  >  Laravel에서 중간 키를 만드는 방법

Laravel에서 중간 키를 만드는 방법

PHPz
PHPz원래의
2023-04-11 15:05:28889검색

Laravel은 개발자가 고품질 웹 애플리케이션을 구축할 수 있도록 다양한 기능과 도구를 제공하는 인기 있는 PHP 프레임워크입니다. 주목할만한 기능 중 하나는 요청이 애플리케이션의 최종 목적지에 도달하기 전에 개발자가 특정 작업을 수행할 수 있도록 하는 미들웨어입니다. 이번 글에서는 Laravel 미들웨어를 만드는 방법을 소개하겠습니다.

미들웨어란 무엇인가요?

미들웨어는 라우팅 요청을 가로채는 방법입니다. 애플리케이션이 요청을 받으면 미들웨어는 요청을 수정하고 제어하기 위해 일련의 작업을 수행합니다. 미들웨어는 인증, 접근 제어, 캐싱 등과 같은 다양한 작업에 사용될 수 있습니다.

Laravel에는 auth, csrf, throttle 등과 같은 일부 미들웨어가 함께 제공됩니다. 또한 개발자는 보다 구체적인 작업을 수행하기 위해 자체 미들웨어를 만들 수 있습니다. authcsrfthrottle等。此外,开发者还可以创建自己的中间件来完成更特定的任务。

创建中间件

在Laravel中创建中间件非常简单,只需要执行以下命令即可生成一个新的中间件:

php artisan make:middleware MyMiddleware

以上命令将会在app/Http/Middleware目录下创建一个名为MyMiddleware的新中间件类。该类将包含两个方法:handle()__construct()

handle()方法是中间件的核心,它定义了中间件被执行时需要执行的操作。handle()方法将接收两个参数:请求对象和一个回调闭包。通常情况下,中间件会修改请求并将其传递给下一个处理程序。

以下是一个简单的中间件示例,用于记录请求的响应时间:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;

class ResponseTimeMiddleware
{
    public function handle($request, Closure $next)
    {
        $start_time = microtime(true);
        $response = $next($request);
        $end_time = microtime(true);
        $response_time = round(($end_time - $start_time) * 1000, 2);
        Log::info("Response time: {$response_time}ms");
        return $response;
    }
}

在上面的示例中,我们记录了请求的开始时间,并在请求结束后计算响应时间。然后,我们将响应时间记录到应用程序日志中,并将响应返回。

注册中间件

要使用中间件,需要将其注册到应用程序中。Laravel提供了两种方法来注册中间件。

全局中间件

全局中间件将在每个请求处理程序之前运行。要注册全局中间件,请打开app/Http/Kernel.php文件,并将类添加到$middleware属性中。

例如,要注册我们之前创建的ResponseTimeMiddleware中间件,我们可以将以下代码添加到$middleware数组中:

protected $middleware = [
    \App\Http\Middleware\ResponseTimeMiddleware::class
];

路由中间件

路由中间件仅在指定路由上运行。要注册路由中间件,请在app/Http/Kernel.php文件中的$routeMiddleware属性中添加类别名。

例如,要注册之前创建的ResponseTimeMiddleware中间件,我们可以将以下代码添加到$routeMiddleware

미들웨어 생성

Laravel에서 미들웨어를 생성하는 것은 매우 간단합니다. 다음 명령을 실행하여 새 미들웨어를 생성하세요.

protected $routeMiddleware = [
    &#39;response_time&#39; => \App\Http\Middleware\ResponseTimeMiddleware::class,
];
위 명령은 app/Http/Middleware에 있습니다. 디렉토리에 MyMiddleware라는 클래스가 있습니다. 이 클래스에는 handle()__construct()라는 두 가지 메서드가 포함됩니다.

handle() 메서드는 미들웨어 실행 시 수행해야 할 작업을 정의하는 미들웨어의 핵심입니다. handle() 메서드는 요청 개체와 콜백 클로저라는 두 가지 매개변수를 받습니다. 일반적으로 미들웨어는 요청을 수정하여 다음 핸들러로 전달합니다. 🎜🎜다음은 요청의 응답 시간을 기록하는 간단한 미들웨어 예입니다. 🎜
Route::get('/', function () {
    return view('welcome');
})->middleware('response_time');
🎜위의 예에서는 요청 시작 시간을 기록하고 요청이 끝난 후 응답 시간을 계산합니다. 그런 다음 응답 시간을 애플리케이션 로그에 기록하고 응답을 반환합니다. 🎜🎜미들웨어 등록🎜🎜미들웨어를 사용하려면 애플리케이션에 등록해야 합니다. Laravel은 미들웨어를 등록하는 두 가지 방법을 제공합니다. 🎜

전역 미들웨어

🎜전역 미들웨어는 모든 요청 처리기 전에 실행됩니다. 전역 미들웨어를 등록하려면 app/Http/Kernel.php 파일을 열고 $middleware 속성에 클래스를 추가하세요. 🎜🎜예를 들어 앞서 생성한 ResponseTimeMiddleware 미들웨어를 등록하려면 $middleware 배열에 다음 코드를 추가하면 됩니다: 🎜rrreee

Routing Middleware h3>🎜Route 미들웨어는 지정된 경로에서만 실행됩니다. 경로 미들웨어를 등록하려면 app/Http/Kernel.php 파일의 $routeMiddleware 속성에 카테고리 이름을 추가하세요. 🎜🎜예를 들어 앞서 생성한 ResponseTimeMiddleware 미들웨어를 등록하려면 $routeMiddleware 배열에 다음 코드를 추가하면 됩니다. 🎜rrreee🎜라우트 파일에서 다음을 수행할 수 있습니다. 사용할 미들웨어를 지정하려면 카테고리 이름을 사용하세요: 🎜rrreee🎜Conclusion🎜🎜미들웨어는 애플리케이션이 요청을 실행하기 전에 개발자가 요청을 수정하고 제어할 수 있게 해주는 Laravel 프레임워크의 강력한 기능입니다. 이 기사에서는 Laravel 미들웨어의 생성 및 등록과 이를 애플리케이션에서 사용하는 방법을 살펴보았습니다. 이전에 미들웨어를 사용해 본 적이 없다면 시간을 내어 배우고 사용해 보는 것이 좋습니다. 🎜

위 내용은 Laravel에서 중간 키를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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