Метод isServerError
Метод isServerError класса Response возвращает true, если статус-код ответа находится в диапазоне 500–599, и false в противном случае. Серверные ошибки означают, что запрос не был выполнен по вине сервера: например, внутренняя ошибка (500), плохой шлюз (502) или сервис недоступен (503). Метод не принимает параметров и не изменяет сам объект ответа.
Синтаксис
public function isServerError(): bool
Пример
Давайте создадим ответ со статусом 500 и проверим его через isServerError:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ResponseController extends AbstractController
{
#[Route('/response/server-error', name: 'response_server_error')]
public function serverError(): Response
{
$res = new Response('Server error', 500);
var_dump($res->isServerError());
return $res;
}
}
?>
Результат выполнения кода:
bool(true)
Server error
Пример
Давайте проверим ответ со статусом 404 - это клиентская ошибка, поэтому isServerError вернёт false:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ResponseController extends AbstractController
{
#[Route('/response/not-found', name: 'response_not_found')]
public function notFound(): Response
{
$res = new Response('Page not found', 404);
var_dump($res->isServerError());
return $res;
}
}
?>
Результат выполнения кода:
bool(false)
Page not found
Пример
Давайте переберём несколько статус-кодов и посмотрим, какие из них считаются серверными ошибками:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ResponseController extends AbstractController
{
#[Route('/response/check-codes', name: 'response_check_codes')]
public function checkCodes(): Response
{
$codes = [200, 301, 400, 404, 500, 503];
$res = [];
foreach ($codes as $code) {
$response = new Response('', $code);
$res[$code] = $response->isServerError();
}
var_dump($res);
return new Response('Checked');
}
}
?>
Результат выполнения кода:
[200 => false, 301 => false, 400 => false, 404 => false, 500 => true, 503 => true]
Смотрите также
-
метод
isClientError,
который проверяет клиентские ошибки (4xx) -
метод
isSuccessful,
который проверяет успешные ответы (2xx) -
метод
getStatusCode,
который возвращает статус-код ответа -
класс
Response,
который представляет HTTP-ответ