РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1005 of 1361 menu

Событие RequestEvent

Событие RequestEvent относится к компоненту HttpKernel и вызывается в момент, когда ядро получает объект Request. Это событие позволяет слушателям получить доступ к запросу до того, как он будет передан контроллеру, и при необходимости установить объект Response, чтобы прервать дальнейшую обработку. Первым параметром в слушатель передаётся объект события, содержащий текущий запрос.

Синтаксис

use Symfony\Component\HttpKernel\Event\RequestEvent;

Пример

Давайте создадим слушателя, который проверяет наличие заголовка X-Custom-Auth и возвращает ответ, если он отсутствует:

<?php namespace App\EventListener; use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpFoundation\Response; class RequestListener { public function onKernelRequest(RequestEvent $event): void { $request = $event->getRequest(); if (!$request->headers->has('X-Custom-Auth')) { $event->setResponse(new Response('Access denied', 403)); } } } ?>

Теперь зарегистрируем слушателя в конфигурации сервисов:

services: App\EventListener\RequestListener: tags: - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

Результат выполнения кода при отсутствии заголовка:

"Access denied"

Пример

Давайте получим объект запроса и выведем метод HTTP в лог:

<?php namespace App\EventListener; use Psr\Log\LoggerInterface; use Symfony\Component\HttpKernel\Event\RequestEvent; class RequestLogger { private LoggerInterface $logger; public function __construct(LoggerInterface $logger) { $this->logger = $logger; } public function onKernelRequest(RequestEvent $event): void { $request = $event->getRequest(); $this->logger->info('Request method: ' . $request->getMethod()); } } ?>

Результат выполнения кода в логе:

"Request method: GET"

Смотрите также

  • класс RequestEvent,
    который представляет событие ядра
  • метод getRequest,
    который возвращает объект запроса
  • метод setResponse,
    который устанавливает ответ и прерывает обработку
  • событие ResponseEvent,
    которое возникает при формировании ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить