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

Класс RequestEvent

Класс RequestEvent представляет событие, которое создаётся ядром Symfony при обработке HTTP-запроса. Он наследуется от KernelEvent и содержит объект Request, доступный через метод getRequest. Слушатели этого события могут читать данные запроса, а также изменять его до того, как он будет передан контроллеру. Событие RequestEvent срабатывает на этапе kernel.request.

Синтаксис

use Symfony\Component\HttpKernel\Event\RequestEvent; $event = new RequestEvent($kernel, $request, $requestType);

Первым параметром передаётся объект ядра HttpKernelInterface, вторым - объект Request, третьим - тип запроса (например, HttpKernelInterface::MAIN_REQUEST).

Пример

Давайте создадим слушателя события kernel.request, который получает объект запроса через метод getRequest и выводит его метод:

<?php namespace App\EventListener; use Symfony\Component\HttpKernel\Event\RequestEvent; class RequestListener { public function onKernelRequest(RequestEvent $event): void { $request = $event->getRequest(); echo $request->getMethod(); } } ?>

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

"GET"

Пример

Давайте проверим, является ли событие основным запросом, с помощью метода isMainRequest:

<?php namespace App\EventListener; use Symfony\Component\HttpKernel\Event\RequestEvent; class RequestListener { public function onKernelRequest(RequestEvent $event): void { if ($event->isMainRequest()) { echo 'main request'; } else { echo 'sub request'; } } } ?>

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

"main request"

Пример

Давайте зарегистрируем слушателя в конфигурации сервисов и повесим его на событие kernel.request:

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

Теперь при каждом HTTP-запросе Symfony будет вызывать метод onKernelRequest и передавать в него объект RequestEvent.

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

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