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

Метод getStatusCode

Метод getStatusCode принадлежит интерфейсу HttpExceptionInterface и возвращает целочисленный HTTP-код ответа, который должен быть отправлен клиенту вместе с исключением. Все HTTP-исключения Symfony реализуют этот интерфейс, поэтому метод доступен у любого из них. Параметров метод не принимает.

Синтаксис

public function getStatusCode(): int

Пример

Давайте выбросим исключение NotFoundHttpException и получим его HTTP-код через метод getStatusCode:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $exception = new NotFoundHttpException('article not found'); return new Response((string) $exception->getStatusCode()); } } ?>

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

404

Пример

Давайте проверим код у исключения BadRequestHttpException:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user')] public function user(): Response { $exception = new BadRequestHttpException('bad request'); return new Response((string) $exception->getStatusCode()); } } ?>

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

400

Пример

Давайте переберём несколько исключений и выведем их коды в виде массива:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/list', name: 'article_list')] public function list(): Response { $exceptions = [ new NotFoundHttpException('not found'), new AccessDeniedHttpException('access denied'), new UnauthorizedHttpException('Bearer', 'unauthorized'), ]; $res = []; foreach ($exceptions as $exception) { $res[] = $exception->getStatusCode(); } return new Response(json_encode($res)); } } ?>

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

[404, 403, 401]

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

  • интерфейс HttpExceptionInterface,
    который реализуют все HTTP-исключения
  • метод getHeaders,
    который возвращает HTTP-заголовки исключения
  • класс NotFoundHttpException,
    который соответствует ошибке 404
  • класс AccessDeniedHttpException,
    который соответствует ошибке 403
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить