Laravel, популярный PHP-фреймворк, предоставляет надежную систему промежуточного программного обеспечения, которая позволяет применять фильтры к HTTP-запросам до того, как они достигнут ваших контроллеров. В этой статье блога мы рассмотрим различные методы использования промежуточного программного обеспечения контроллера в Laravel, сопровождаемые примерами кода. К концу вы получите четкое представление о том, как использовать промежуточное программное обеспечение для повышения функциональности и безопасности ваших приложений Laravel.
- Глобальное промежуточное ПО.
Глобальное промежуточное ПО применяется ко всем HTTP-запросам в вашем приложении. Чтобы определить глобальное промежуточное программное обеспечение, откройте файлapp/Http/Kernel.phpи добавьте класс промежуточного программного обеспечения в массив$middleware. Например:
protected $middleware = [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// ...
];
- Промежуточное программное обеспечение маршрута:
Промежуточное программное обеспечение маршрута позволяет применять промежуточное программное обеспечение к определенным маршрутам или группам маршрутов. Чтобы определить промежуточное программное обеспечение маршрута, откройте файлapp/Http/Kernel.phpи добавьте класс промежуточного программного обеспечения в массив$routeMiddleware. Например:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'admin' => \App\Http\Middleware\Admin::class,
// ...
];
- Промежуточное программное обеспечение контроллера:
Промежуточное программное обеспечение контроллера применяется непосредственно к действиям контроллера. Вы можете указать промежуточное ПО в конструкторе контроллера или с помощью методаmiddleware. Вот пример:
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
// Controller logic
}
}
- Группы промежуточного программного обеспечения.
Laravel позволяет группировать промежуточное программное обеспечение под одним именем, что упрощает применение нескольких промежуточного программного обеспечения к маршруту или контроллеру. Чтобы определить группы промежуточного программного обеспечения, откройте файлapp/Http/Kernel.phpи добавьте группу в массив$middlewareGroups. Вот пример:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// ...
],
'api' => [
'throttle:60,1',
'auth:api',
],
];
- Условное промежуточное ПО.
Вы можете условно применить промежуточное ПО, используя методwhen. Методwhenпринимает замыкание и применяет промежуточное программное обеспечение только в том случае, если замыкание возвращает true. Вот пример:
$this->middleware('admin')->when(function () {
return Auth::user()->isAdmin();
});
Промежуточное ПО контроллера Laravel предоставляет мощный механизм обработки запросов до того, как они достигнут ваших контроллеров. В этой статье мы рассмотрели различные методы использования промежуточного программного обеспечения в Laravel, включая глобальное промежуточное программное обеспечение, промежуточное программное обеспечение для маршрутов, промежуточное программное обеспечение контроллера, группы промежуточного программного обеспечения и условное промежуточное программное обеспечение. Используя эти методы, вы можете повысить безопасность и функциональность своих приложений Laravel.
Не забудьте выбрать подходящее промежуточное программное обеспечение в соответствии с требованиями вашего приложения и убедиться, что все необходимые классы промежуточного программного обеспечения правильно зарегистрированы и настроены.