Промежуточное ПО играет решающую роль в приложениях Laravel 8, предоставляя удобный способ фильтрации HTTP-запросов, входящих в ваше приложение. Хотя Laravel поставляется с несколькими встроенными промежуточными программами, он также позволяет создавать собственные промежуточные программы для удовлетворения конкретных требований приложения. В этой статье мы рассмотрим различные методы создания и использования специального промежуточного программного обеспечения в Laravel 8, а также примеры кода, иллюстрирующие их реализацию.
- Создание собственного промежуточного программного обеспечения.
Чтобы создать собственное промежуточное программное обеспечение в Laravel 8, выполните следующие действия:
Шаг 1. Создайте файл промежуточного программного обеспечения
php artisan make:middleware CustomMiddleware
Шаг 2. Реализация логики промежуточного программного обеспечения
Откройте сгенерированный файл CustomMiddleware
и определите метод handle
, который содержит логику, которая будет выполняться до или после запрос обрабатывается приложением.
namespace App\Http\Middleware;
use Closure;
class CustomMiddleware
{
public function handle($request, Closure $next)
{
// Custom middleware logic goes here
return $next($request);
}
}
- Регистрация пользовательского промежуточного программного обеспечения.
После того как вы создали собственное промежуточное программное обеспечение, вам необходимо зарегистрировать его в приложении Laravel. Существует два способа регистрации промежуточного программного обеспечения:
а. Глобальное промежуточное программное обеспечение:
Глобальное промежуточное программное обеспечение запускается при каждом HTTP-запросе к вашему приложению. Чтобы зарегистрировать пользовательское промежуточное ПО глобально, добавьте его в свойство $middleware
в классе App\Http\Kernel
.
protected $middleware = [
// Other middleware...
\App\Http\Middleware\CustomMiddleware::class,
];
б. Промежуточное программное обеспечение маршрута:
Промежуточное программное обеспечение маршрута позволяет назначать промежуточное программное обеспечение конкретным маршрутам или группам маршрутов. Чтобы зарегистрировать собственное промежуточное программное обеспечение в качестве промежуточного программного обеспечения маршрута, добавьте его в свойство $routeMiddleware
в классе App\Http\Kernel
.
protected $routeMiddleware = [
// Other middleware...
'custom' => \App\Http\Middleware\CustomMiddleware::class,
];
- Применение специального промежуточного программного обеспечения к маршрутам.
Чтобы применить пользовательское промежуточное программное обеспечение к маршруту, вы можете использовать методmiddleware
в определении маршрута.
Route::get('/example', function () {
// Route logic...
})->middleware('custom');
- Параметры промежуточного программного обеспечения:
Промежуточное программное обеспечение в Laravel также может принимать параметры. Чтобы передать параметры в ваше собственное промежуточное программное обеспечение, вы можете связать их с вызовом методаmiddleware
.
Route::get('/example', function () {
// Route logic...
})->middleware('custom:param1,param2');
- Группы промежуточного программного обеспечения.
Laravel позволяет группировать несколько промежуточного программного обеспечения под одним ключом. Чтобы определить группу промежуточного программного обеспечения, добавьте ее в свойство$middlewareGroups
в классеApp\Http\Kernel
.
protected $middlewareGroups = [
'web' => [
// Other middleware...
\App\Http\Middleware\CustomMiddleware::class,
],
];
Пользовательское промежуточное программное обеспечение обеспечивает гибкий способ удовлетворения конкретных требований в приложениях Laravel 8. В этой статье мы рассмотрели методы создания собственного промежуточного программного обеспечения, его регистрации глобально или в качестве промежуточного программного обеспечения для маршрутов, применения промежуточного программного обеспечения к маршрутам, передачи параметров и использования групп промежуточного программного обеспечения. Используя специальное промежуточное программное обеспечение, вы можете повысить безопасность, производительность и функциональность своих приложений Laravel.