Метод sendHeaders
Метод sendHeaders класса Response отправляет
HTTP-заголовки клиенту. При этом тело ответа не отправляется.
Метод не принимает параметров и возвращает объект Response,
что позволяет использовать его в цепочке вызовов. Обычно этот метод
применяется внутри метода send или при ручной отправке ответа,
когда нужно отдельно управлять порядком отправки заголовков и контента.
Синтаксис
$response->sendHeaders();
Пример
Давайте создадим ответ и отправим только его заголовки:
<?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-Header', 'abcde');
$response->sendHeaders();
return $response;
}
}
?>
В результате клиенту будут отправлены заголовки, включая
X-Custom-Header: abcde, но тело ответа отправлено не будет.
Пример
Давайте отправим заголовки и контент отдельно друг от друга:
<?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('Content-Type', 'text/plain');
$response->sendHeaders();
$response->sendContent();
return $response;
}
}
?>
Результат выполнения кода:
"user"
Смотрите также
-
метод
send,
который отправляет заголовки и тело ответа -
метод
sendContent,
который отправляет только тело ответа -
класс
Response,
который представляет HTTP-ответ -
атрибут
headers,
который хранит заголовки ответа