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

Событие TerminateEvent

Событие TerminateEvent относится к секции kernel и срабатывает после того, как ответ был отправлен клиенту. Оно позволяет выполнить тяжёлые операции (логирование, отправку писем, очистку кеша) вне основного цикла обработки запроса, чтобы не задерживать ответ. Первым параметром событие принимает объект Request, вторым - объект Response. Получить их можно через методы getRequest и getResponse.

Синтаксис

use SymfonyComponentHttpKernelEventTerminateEvent; $event->getRequest(): Request $event->getResponse(): Response

Пример

Давайте подпишемся на событие TerminateEvent и запишем в лог адрес запроса:

<?php namespace AppEventListener; use SymfonyComponentEventDispatcherEventSubscriberInterface; use SymfonyComponentHttpKernelEventTerminateEvent; use SymfonyComponentHttpKernelKernelEvents; class TerminateListener implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ KernelEvents::TERMINATE => 'onTerminate', ]; } public function onTerminate(TerminateEvent $event): void { $request = $event->getRequest(); echo $request->getPathInfo(); } } ?>

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

/user/abcde

Пример

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

<?php namespace AppEventListener; use SymfonyComponentEventDispatcherEventSubscriberInterface; use SymfonyComponentHttpKernelEventTerminateEvent; use SymfonyComponentHttpKernelKernelEvents; class TerminateListener implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ KernelEvents::TERMINATE => 'onTerminate', ]; } public function onTerminate(TerminateEvent $event): void { $response = $event->getResponse(); echo $response->getStatusCode(); } } ?>

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

200

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

  • событие ResponseEvent,
    которое срабатывает при формировании ответа
  • событие RequestEvent,
    которое срабатывает при получении запроса
  • событие FinishRequestEvent,
    которое срабатывает при завершении обработки запроса
  • класс KernelEvents,
    который содержит константы имён событий ядра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить