HttpFoundation: запрос и ответ
Оборачивайте суперглобальные переменные в Request из HttpFoundation и создавайте объекты Response
«HttpFoundation: запрос и ответ» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Что такое HttpFoundation?
Symfony HttpFoundation — это автономный компонент PHP, который оборачивает необработанные суперглобальные переменные HTTP ($_GET, $_POST, $_SERVER) в чистые классы в стиле OO.
Установка HttpFoundation
Установите компонент как отдельный пакет через Composer.
$ composer require symfony/http-foundationСоздание запроса из глобальных переменных
Получите текущий запрос HTTP из суперглобальных переменных.
<?php
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
echo $request->query->get("page", 1); // GET param
echo $request->request->get("email"); // POST param
echo $request->headers->get("User-Agent"); // headerЧтение входных данных
Request предоставляет типизированные контейнеры для разных источников входных данных.
<?php
$request->query->get("id"); // $_GET
$request->request->get("name"); // $_POST
$request->attributes->get("key"); // route attributes
$request->cookies->get("token"); // $_COOKIE
$request->files->get("avatar"); // $_FILES
$request->server->get("REMOTE_ADDR"); // $_SERVERМетоды запроса
Проверьте метод HTTP и путь.
<?php
$request->getMethod(); // "GET", "POST", etc.
$request->isMethod("POST"); // bool
$request->getPathInfo(); // "/api/users/1"
$request->getHost(); // "example.com"
$request->isSecure(); // true if HTTPSСоздание ответа
Создайте и отправьте ответ HTTP.
<?php
use Symfony\Component\HttpFoundation\Response;
$response = new Response("Hello World", 200, [
"Content-Type" => "text/plain",
]);
$response->send();JsonResponse
Возвращайте JSON с правильным заголовком Content-Type автоматически.
<?php
use Symfony\Component\HttpFoundation\JsonResponse;
$response = new JsonResponse(["status" => "ok", "id" => 42]);
$response->send();RedirectResponse
Перенаправляйте пользователя на другой URL.
<?php
use Symfony\Component\HttpFoundation\RedirectResponse;
$response = new RedirectResponse("/dashboard", 302);
$response->send();Настройка заголовков и файлов cookie
Добавляйте заголовки и файлы cookie к ответам перед отправкой.
<?php
$response->headers->set("X-Rate-Limit", "100");
$response->headers->setCookie(
new Cookie("prefs", "dark", time() + 86400, "/", null, true, true)
);BinaryFileResponse
Эффективно передавайте файлы для скачивания с помощью BinaryFileResponse.
<?php
use Symfony\Component\HttpFoundation\BinaryFileResponse;
$response = new BinaryFileResponse("/path/to/file.pdf");
$response->setContentDisposition("attachment", "report.pdf");
$response->send();StreamedResponse
StreamedResponse отправляет данные по мере их создания и идеально подходит для больших выгрузок или потоковой передачи данных в реальном времени.
Итоги
HttpFoundation оборачивает суперглобальные переменные в Request и создает ответы с помощью Response, JsonResponse, RedirectResponse. Это HTTP-уровень, используемый и Laravel, и Symfony.
Быстрая проверка
Какой контейнер обращается к параметрам GET-запроса в Request из HttpFoundation?
Часто задаваемые вопросы
Урок «HttpFoundation: запрос и ответ» бесплатный?
Да — полный текст урока «HttpFoundation: запрос и ответ» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «HttpFoundation: запрос и ответ»?
Оборачивайте суперглобальные переменные в Request из HttpFoundation и создавайте объекты Response Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «HttpFoundation: запрос и ответ»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- HttpFoundation: запрос и ответ
- Контейнер DependencyInjection
- EventDispatcher: слабо связанные события
- Компонент Console: команды CLI