Метод get класса HeaderBag
Метод get класса HeaderBag возвращает значение HTTP-заголовка по его имени. Первым параметром передаётся имя заголовка (без учёта регистра). Вторым необязательным параметром можно передать значение по умолчанию, которое будет возвращено, если заголовок отсутствует. Метод возвращает строку или значение по умолчанию, если заголовок не найден.
Синтаксис
public function get(string $key, ?string $default = null): ?string
Пример
Давайте создадим объект HeaderBag и получим значение заголовка 'Content-Type':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\Routing\Attribute\Route;
class HeaderController extends AbstractController
{
#[Route('/header/get', name: 'header_get')]
public function index(): Response
{
$bag = new HeaderBag(['Content-Type' => 'application/json']);
return new Response($bag->get('Content-Type'));
}
}
?>
Результат выполнения кода:
"application/json"
Пример
Давайте получим значение несуществующего заголовка и передадим значение по умолчанию:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\Routing\Attribute\Route;
class HeaderController extends AbstractController
{
#[Route('/header/default', name: 'header_default')]
public function index(): Response
{
$bag = new HeaderBag(['Content-Type' => 'text/html']);
return new Response($bag->get('X-Custom', 'default-value'));
}
}
?>
Результат выполнения кода:
"default-value"
Пример
Давайте получим значение заголовка из реального запроса пользователя:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class HeaderController extends AbstractController
{
#[Route('/header/request', name: 'header_request')]
public function index(Request $request): Response
{
$userAgent = $request->headers->get('User-Agent', 'unknown');
return new Response($userAgent);
}
}
?>
Результат выполнения кода для стандартного браузера:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"