Когда я перемещался по лабиринту веб-разработки, одна особенность постоянно освещала мой путь: система промежуточного программного обеспечения Laravel. Промежуточное программное обеспечение не просто фильтрует запросы; он преобразует приложения, обеспечивая безопасность, производительность и удобство взаимодействия с пользователем. Независимо от того, работаете ли вы над аутентификацией, журналированием или решением сквозных задач, промежуточное программное обеспечение поможет вам элегантно управлять этим.
Понимание промежуточного программного обеспечения
Промежуточное программное обеспечение действует как мост между запросом и ответом, играя ключевую роль в жизненном цикле запрос-ответ в веб-приложении. Во-первых, давайте разберемся, что такое запрос и ответ. Запрос делается клиентом (обычно браузером пользователя) на сервер с запросом определенных ресурсов, таких как веб-страницы, данные или другие услуги.
Этот запрос содержит важную информацию, включая методы HTTP (GET, POST, ...), заголовки и, возможно, тело, содержащее данные. Как только сервер получает этот запрос, он обрабатывает необходимую информацию и генерирует ответ.
Ответ — это ответ сервера на запрос клиента. Он содержит статус запроса (например, успех, сбой), заголовки и тело, которое часто включает HTML, JSON или другие форматы данных, которые клиент использует для отображения веб-страницы или выполнения дальнейших действий.
Промежуточное ПО выступает в роли посредника, который может проверять, изменять или даже останавливать эти запросы и ответы. Он действует до того, как запрос достигнет базовой логики приложения и до того, как ответ будет отправлен обратно клиенту.
Нам нужно промежуточное программное обеспечение, поскольку оно позволяет использовать модульный и многократно используемый код для решения сквозных задач, таких как аутентификация, ведение журналов и манипулирование данными, не загромождая основную логику приложения. Например, промежуточное программное обеспечение может гарантировать, что только прошедшие проверку подлинности пользователи смогут получить доступ к определенным маршрутам, регистрировать каждый запрос в целях отладки или преобразовывать данные запроса до того, как они достигнут контроллера.
Создание промежуточного программного обеспечения
Создать промежуточное программное обеспечение в Laravel очень просто. Вы можете создать новое промежуточное программное обеспечение с помощью команды Artisan.
php artisan make:middleware CheckAge
Эта команда создаст новый файл промежуточного программного обеспечения CheckAge в каталоге app/Http/Middleware. Внутри этого файла вы можете определить логику, которая должна выполняться для каждого запроса.
ageВ этом примере промежуточное программное обеспечение проверяет атрибут age в запросе. Если возраст меньше или равен 200, пользователь перенаправляется на маршрут home. В противном случае запрос будет продолжен.
Регистрация промежуточного программного обеспечения
После того как вы создали промежуточное программное обеспечение, вам необходимо зарегистрировать его в ядре. Ядро — это ядро приложения Laravel, которое управляет всем жизненным циклом HTTP-запроса. Он действует как центральный узел, который организует поток запросов через различные уровни промежуточного программного обеспечения, прежде чем они достигнут маршрутов и контроллеров приложения.
Есть два способа зарегистрировать промежуточное программное обеспечение в файле app/Http/Kernel.php:
Глобальное промежуточное программное обеспечение: Это промежуточное программное обеспечение запускается при каждом запросе к
ваше приложение.Промежуточное программное обеспечение маршрута: Это промежуточное программное обеспечение можно назначить конкретному
маршруты.Чтобы зарегистрировать наше промежуточное программное обеспечение CheckAge в качестве промежуточного программного обеспечения маршрута, добавьте его в массив $routeMiddleware в ядре:
protected $routeMiddleware = [ // Other middleware 'checkAge' => \App\Http\Middleware\CheckAge::class, ];Теперь вы можете применить это промежуточное программное обеспечение к своим маршрутам или группам маршрутов:
Route::get('admin', function () { // Only accessible if age > 200 })->middleware('checkAge');Расширенные методы промежуточного программного обеспечения
Промежуточное ПО в Laravel не ограничивается простыми проверками. Вот несколько передовых методов, позволяющих максимально эффективно использовать промежуточное программное обеспечение:
- Параметризация промежуточного программного обеспечения
Промежуточное ПО может принимать дополнительные параметры. Это полезно в сценариях, где поведение промежуточного программного обеспечения может меняться в зависимости от параметров.
public function handle($request, Closure $next, $role) { if (! $request->user()->hasRole($role)) { // Redirect or abort } return $next($request); }
- Промежуточное программное обеспечение для группировки
Вы можете сгруппировать несколько промежуточных программ под одним ключом, что помогает применять набор промежуточных программ ко многим маршрутам.
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // more middleware ], ];Применение группы промежуточного программного обеспечения к маршрутам:
Route::middleware(['web'])->group(function () { Route::get('/', function () { // Uses 'web' middleware group }); Route::get('dashboard', function () { // Uses 'web' middleware group }); });
- Завершение промежуточного программного обеспечения
Промежуточное программное обеспечение может определить метод terminate, который будет вызываться после отправки ответа в браузер. Это особенно полезно для таких задач, как ведение журнала или аналитика.
public function terminate($request, $response) { // Log request and response }Заключение
Овладев промежуточным программным обеспечением, вы сможете создавать приложения, которые не только безопасны и производительны, но также удобны в обслуживании и масштабируемы. Независимо от того, выполняете ли вы аутентификацию, ведение журнала или даже тонкую настройку поведения вашего приложения с помощью пользовательских параметров, промежуточное программное обеспечение предоставляет чистое и элегантное решение.
Используйте возможности промежуточного программного обеспечения в своих проектах Laravel и посмотрите, как оно меняет ваш подход к решению сквозных задач. Приятного кодирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3