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

Метод getHeaders класса HttpExceptionInterface

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

Синтаксис

public function getHeaders(): array

Пример

Давайте создадим собственное исключение, которое реализует HttpExceptionInterface, и вернём из метода getHeaders заголовок X-Custom-Header:

<?php namespace AppException; use SymfonyComponentHttpKernelExceptionHttpExceptionInterface; class CustomHttpException extends Exception implements HttpExceptionInterface { public function getStatusCode(): int { return 400; } public function getHeaders(): array { return [ 'X-Custom-Header' => 'article', ]; } } ?>

Пример

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

<?php namespace AppController; use AppExceptionCustomHttpException; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { throw new CustomHttpException('Bad request'); } } ?>

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

X-Custom-Header: article

Пример

Давайте рассмотрим стандартное исключение NotFoundHttpException и получим его заголовки через метод getHeaders:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionNotFoundHttpException; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { $exception = new NotFoundHttpException('Page not found'); $res = $exception->getHeaders(); return new Response(json_encode($res)); } } ?>

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

[]

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

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