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

Метод prepare класса Response

Метод prepare класса Response подготавливает объект ответа к отправке. Он вызывается автоматически ядром Symfony перед отправкой ответа клиенту и приводит ответ в соответствие с требованиями HTTP-протокола: устанавливает статус-код, заголовки и содержимое. Метод не принимает параметров и возвращает тот же объект Response, что позволяет использовать его в цепочке вызовов.

Синтаксис

public function prepare(Request $request): static

Пример

Давайте создадим ответ и вручную вызовем метод prepare, чтобы подготовить его к отправке:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $response = new Response('hello'); $response->prepare($request); return $response; } } ?>

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

hello

Пример

Давайте посмотрим, как метод prepare устанавливает заголовок Content-Type на основе переданного ответа:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $response = new Response('abcde'); $response->prepare($request); $contentType = $response->headers->get('Content-Type'); return new Response($contentType); } } ?>

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

"text/html; charset=UTF-8"

Пример

Давайте подготовим ответ со статус-кодом 404 и проверим его состояние:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $response = new Response('user', Response::HTTP_NOT_FOUND); $response->prepare($request); return new Response($response->getStatusCode()); } } ?>

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

404

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

  • класс Response,
    который представляет HTTP-ответ
  • метод send,
    который отправляет ответ клиенту
  • метод setStatusCode,
    который задаёт статус-код ответа
  • метод setContent,
    который задаёт содержимое ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить