> Что происходит в контроллере после получения запроса (PHP)

Уровень: middle · Роль: backend · Язык: PHP · Категория: Технические вопросы

Компании: Travelata

Стек: PHP

> Пример ответа

После получения HTTP-запроса контроллер в PHP выполняет несколько ключевых шагов:

  1. Прием запроса - контроллер получает инстанс Request (например, Symfony Request или PSR-7), содержащий данные: метод, URI, заголовки, тело запроса, параметры маршрута.

  2. Валидация - проверка входных данных (через FormRequest, валидаторы или вручную). Если данные некорректны, возвращается ответ с ошибкой (422 Unprocessable Entity).

  3. Извлечение параметров - получение данных из запроса: $request->input('name'), $request->file('avatar'), параметры маршрута (например, ID сущности).

  4. Бизнес-логика - вызов сервисов, репозиториев или моделей для выполнения основной задачи (создание, обновление, удаление, чтение данных). Контроллер выступает как "клей", делегируя работу другим классам.

  5. Формирование ответа - создание Response: JSON, HTML, редирект, файл. Часто используется репозиторий или ресурс для трансформации данных (например, UserResource::collection($users)).

  6. Отправка ответа - PHP автоматически отправляет заголовки и тело ответа клиенту. В современных фреймворках (Laravel, Symfony) это делает middleware-слой.

Пример на Laravel:

PHP
public function store(StoreUserRequest $request): JsonResponse
{
$user = UserService::create($request->validated());
return response()->json($user, 201);
}

Контроллер не должен содержать сложной логики - его задача: принять запрос, передать управление сервисам и вернуть ответ.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью