@startproger

Как правильно получить Request в сервисе Symfony?

Нужно в сервисе получить объект Request.

Сделать это можно, как я понял, двумя способами:
  1. Вызвать в конструкторе Symfony\Component\HttpFoundation\RequestStack и затем вызвать от него метод getCurrentRequest()
  2. Вызвать статичный метод Symfony\Component\HttpFoundation\Request::createFromGlobals()


Поскольку результат один и тот же, я не понимаю в чём разница между двумя подходами. Объясните, пожалуйста, чем они отличаются.
  • Вопрос задан
  • 335 просмотров
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Второй вариант - не рабочий, вы получите не текущий Request, а создадите новый.
Из RequestStack вы получите именно текущий Request, в котором содержаться аттрибуты, которое могут добавляться в процессе выполнения приложения (текущий роут, его параметры etc)

Но помните, что приложение не обязательно выполняется в web-контексте, и Request может не существовать, так что в идеале его получать в контроллере, вытаскивать от туда нужные параметры, которые уже передавать в сервис
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы