Метод remove класса HeaderBag
Метод remove класса HeaderBag удаляет
HTTP-заголовок из коллекции. Первым параметром
передаётся имя заголовка в виде строки. Имя
регистронезависимо, поэтому Content-Type
и content-type - одно и то же. Если
заголовка с таким именем нет, метод просто
ничего не делает и не выбрасывает ошибку.
Объект HeaderBag доступен через свойство
headers объекта Response или
Request. Метод возвращает void, то есть
никакого значения не отдаёт.
Синтаксис
$bag->remove(string $key)
Пример
Давайте создадим объект HeaderBag с двумя
заголовками и удалим один из них:
<?php
use Symfony\Component\HttpFoundation\HeaderBag;
$bag = new HeaderBag([
'Content-Type' => 'text/html',
'X-Custom' => 'abcde',
]);
$bag->remove('X-Custom');
var_dump($bag->all());
?>
Результат выполнения кода:
["content-type" => ["text/html"]]
Пример
Метод remove можно вызвать у заголовков
объекта Response, чтобы убрать лишний
заголовок перед отправкой клиенту:
<?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_index')]
public function index(): Response
{
$response = new Response('hello');
$response->headers->set('X-Custom', 'abcde');
$response->headers->remove('X-Custom');
return $response;
}
}
?>
После удаления заголовок X-Custom в ответе
отсутствует, поэтому клиент получит только
стандартные заголовки:
hello
Пример
Давайте удалим заголовок у объекта Request,
чтобы он не мешал дальнейшей обработке:
<?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 ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$request->headers->remove('X-Custom');
return new Response('article');
}
}
?>
Результат выполнения кода:
article