Метод hasResponse
Метод hasResponse принадлежит классу RequestEvent
и возвращает логическое значение: true, если в событии
уже был установлен объект ответа, и false в противном случае.
Метод не принимает параметров. Он часто используется в слушателях
события kernel.request для проверки того, не прервал ли
какой-либо другой слушатель выполнение запроса, вернув свой ответ.
Синтаксис
$res = $event->hasResponse();
Пример
Давайте создадим слушатель события kernel.request,
который проверяет наличие ответа и выводит результат проверки:
<?php
namespace AppEventListener;
use SymfonyComponentHttpKernelEventRequestEvent;
class RequestListener
{
public function onKernelRequest(RequestEvent $event): void
{
$res = $event->hasResponse();
if ($res) {
echo 'Response is set';
} else {
echo 'Response is not set';
}
}
}
?>
Результат выполнения кода при отсутствии ответа:
"Response is not set"
Пример
Давайте вручную установим ответ через метод setResponse
и проверим его наличие через hasResponse:
<?php
namespace AppEventListener;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpKernelEventRequestEvent;
class ResponseCheckListener
{
public function onKernelRequest(RequestEvent $event): void
{
$response = new Response('hello');
$event->setResponse($response);
$res = $event->hasResponse();
if ($res) {
echo 'Response is set';
}
}
}
?>
Результат выполнения кода:
"Response is set"
Смотрите также
-
класс
RequestEvent,
который представляет событие запроса ядра -
метод
setResponse,
который устанавливает ответ в событии -
метод
getResponse,
который возвращает установленный ответ -
событие
RequestEvent,
которое возникает при обработке запроса