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

Метод allPreserveCase класса HeaderBag

Метод allPreserveCase класса HeaderBag возвращает все заголовки в виде ассоциативного массива, в котором ключами являются имена заголовков в том регистре, в котором они были установлены. В отличие от метода all, который приводит имена заголовков к нижнему регистру, allPreserveCase сохраняет оригинальное написание ключей, что удобно, когда важно отдать заголовки клиенту в исходном виде.

Метод не принимает параметров и возвращает массив, где ключи - имена заголовков, а значения - массивы строк со значениями этих заголовков.

Синтаксис

public function allPreserveCase(): array

Пример

Давайте создадим объект HeaderBag, установим несколько заголовков и получим их через allPreserveCase:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpFoundationHeaderBag; class ArticleController extends AbstractController { public function index(): Response { $bag = new HeaderBag(); $bag->set('Content-Type', 'text/html'); $bag->set('X-Custom-Header', 'abcde'); $res = $bag->allPreserveCase(); return new Response(json_encode($res)); } } ?>

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

{"Content-Type":["text/html"],"X-Custom-Header":["abcde"]}

Пример

Давайте сравним результат работы all и allPreserveCase для одного и того же набора заголовков:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpFoundationHeaderBag; class ArticleController extends AbstractController { public function index(): Response { $bag = new HeaderBag(); $bag->set('Content-Type', 'text/html'); $bag->set('X-Custom-Header', 'hello'); $all = $bag->all(); $preserve = $bag->allPreserveCase(); return new Response(json_encode([ 'all' => $all, 'preserve' => $preserve, ])); } } ?>

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

{"all":{"content-type":["text/html"],"x-custom-header":["hello"]},"preserve":{"Content-Type":["text/html"],"X-Custom-Header":["hello"]}}

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function index(Request $request): Response { $res = $request->headers->allPreserveCase(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода для запроса с заголовком X-Custom-Header: abcde:

{"x-custom-header":["abcde"],"host":["localhost"],"user-agent":["Symfony"]}

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

  • класс HeaderBag,
    который хранит заголовки HTTP-запроса и ответа
  • метод all,
    который возвращает все заголовки в нижнем регистре
  • метод get,
    который возвращает значение заголовка по имени
  • метод set,
    который устанавливает значение заголовка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить