Метод set класса HeaderBag
Метод set класса HeaderBag устанавливает
HTTP-заголовок по указанному имени. Первым параметром
передаётся имя заголовка, вторым - его значение.
Если заголовок с таким именем уже существует, его
значение будет перезаписано. Имя заголовка нормализуется
к нижнему регистру для внутреннего хранения.
Синтаксис
public function set(string $key, string|array|null $values, bool $replace = true): void
Пример
Давайте установим заголовок Content-Type для ответа:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): Response
{
$response = new Response('hello');
$response->headers->set('Content-Type', 'text/plain');
return $response;
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте установим сразу несколько заголовков через массив:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_show')]
public function show(): Response
{
$response = new Response('article');
$response->headers->set('X-Custom-Header', 'abcde');
$response->headers->set('Cache-Control', 'no-cache');
return $response;
}
}
?>
Результат выполнения кода:
"article"
Пример
Давайте передадим массив значений для одного заголовка:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): Response
{
$response = new Response('user');
$response->headers->set('X-Multi', ['abcde', 'article']);
return $response;
}
}
?>
Результат выполнения кода:
"user"