Laravel은 개발자가 고품질 웹 애플리케이션을 구축할 수 있도록 다양한 기능과 도구를 제공하는 인기 있는 PHP 프레임워크입니다. 주목할만한 기능 중 하나는 요청이 애플리케이션의 최종 목적지에 도달하기 전에 개발자가 특정 작업을 수행할 수 있도록 하는 미들웨어입니다. 이번 글에서는 Laravel 미들웨어를 만드는 방법을 소개하겠습니다.
미들웨어는 라우팅 요청을 가로채는 방법입니다. 애플리케이션이 요청을 받으면 미들웨어는 요청을 수정하고 제어하기 위해 일련의 작업을 수행합니다. 미들웨어는 인증, 접근 제어, 캐싱 등과 같은 다양한 작업에 사용될 수 있습니다.
Laravel에는 auth
, csrf
, throttle
등과 같은 일부 미들웨어가 함께 제공됩니다. 또한 개발자는 보다 구체적인 작업을 수행하기 위해 자체 미들웨어를 만들 수 있습니다. auth
,csrf
,throttle
等。此外,开发者还可以创建自己的中间件来完成更特定的任务。
在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
protected $routeMiddleware = [ 'response_time' => \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
배열에 다음 코드를 추가하면 됩니다: 🎜rrreeeapp/Http/Kernel.php
파일의 $routeMiddleware
속성에 카테고리 이름을 추가하세요. 🎜🎜예를 들어 앞서 생성한 ResponseTimeMiddleware
미들웨어를 등록하려면 $routeMiddleware
배열에 다음 코드를 추가하면 됩니다. 🎜rrreee🎜라우트 파일에서 다음을 수행할 수 있습니다. 사용할 미들웨어를 지정하려면 카테고리 이름을 사용하세요: 🎜rrreee🎜Conclusion🎜🎜미들웨어는 애플리케이션이 요청을 실행하기 전에 개발자가 요청을 수정하고 제어할 수 있게 해주는 Laravel 프레임워크의 강력한 기능입니다. 이 기사에서는 Laravel 미들웨어의 생성 및 등록과 이를 애플리케이션에서 사용하는 방법을 살펴보았습니다. 이전에 미들웨어를 사용해 본 적이 없다면 시간을 내어 배우고 사용해 보는 것이 좋습니다. 🎜위 내용은 Laravel에서 중간 키를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!