Промежуточное ПО играет решающую роль в Laravel, популярной PHP-инфраструктуре, поскольку оно позволяет добавлять дополнительные уровни функциональности к HTTP-запросам вашего приложения. В этой статье мы рассмотрим различные методы работы с промежуточным ПО в Laravel и приведем примеры кода, демонстрирующие их использование.
-
Создание промежуточного программного обеспечения.
Чтобы создать новое промежуточное программное обеспечение в Laravel, вы можете использовать командуmake:middleware
Artisan. Например, давайте создадим промежуточное программное обеспечение под названиемCheckAgeMiddleware
:php artisan make:middleware CheckAgeMiddleware
-
Регистрация промежуточного программного обеспечения.
После создания промежуточного программного обеспечения вам необходимо зарегистрировать его в классеApp\Http\Kernel
. Свойство$middleware
содержит список глобального промежуточного программного обеспечения, применяемого к каждому запросу, а свойство$routeMiddleware
позволяет определить промежуточное программное обеспечение для определенных маршрутов или групп.protected $middleware = [ // ... \App\Http\Middleware\CheckAgeMiddleware::class, ]; protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'age' => \App\Http\Middleware\CheckAgeMiddleware::class, // ... ];
-
Работа промежуточного программного обеспечения.
Промежуточное программное обеспечение можно применять к маршрутам различными способами. Вот несколько примеров:
a) Применение промежуточного программного обеспечения к маршрутам:
Чтобы применить промежуточное программное обеспечение к конкретному маршруту, вы можете использовать метод middleware
в определении вашего маршрута:
Route::get('/dashboard', function () {
// ...
})->middleware('auth');
b) Группировка маршрутов с помощью промежуточного программного обеспечения:
Вы можете группировать маршруты с помощью метода middleware
, чтобы применить промежуточное программное обеспечение к нескольким маршрутам одновременно:
Route::middleware(['auth', 'age'])->group(function () {
Route::get('/dashboard', function () {
// ...
});
Route::get('/profile', function () {
// ...
});
});
c) Применение промежуточного программного обеспечения к действиям контроллера.
Вы также можете применить промежуточное программное обеспечение к действиям контроллера, указав его в конструкторе контроллера или используя метод middleware
:
class DashboardController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
}
-
Параметры промежуточного программного обеспечения:
Промежуточное программное обеспечение может принимать параметры, позволяющие настраивать его поведение. Чтобы передать параметры в промежуточное программное обеспечение, вы можете использовать синтаксис замыкания или значения, разделенные двоеточиями:Route::get('/admin', function () { // ... })->middleware('role:admin'); Route::get('/profile', function () { // ... })->middleware('permission:create-post,edit-post');
-
Промежуточное программное обеспечение Terminable:
Промежуточное программное обеспечение Terminable предоставляет методterminate
, который запускается после отправки ответа в браузер. Это может быть полезно для выполнения задач после завершения запроса:class LogRequestMiddleware { public function handle($request, Closure $next) { return $next($request); } public function terminate($request, $response) { // Log request details } }
Промежуточное ПО в Laravel предлагает мощный способ изменения и фильтрации HTTP-запросов. В этой статье мы обсудили различные методы работы с промежуточным ПО, включая создание промежуточного ПО, его регистрацию, применение к маршрутам и действиям контроллера, передачу параметров и использование завершаемого промежуточного ПО. Используя эти методы, вы можете повысить функциональность и безопасность своих приложений Laravel.