Как извлечь запрос из сервис-контейнера
Дата обновления перевода 2023-07-14
Как извлечь запрос из сервис-контейнера
Если вам необходимо получить доступ к текущему запросу в сервисе, можно либо
добавить его в качестве аргумента в методы, которым нужен запрос, либо внедрить
сервис request_stack
и получить доступ к Request
, вызвав метод
getCurrentRequest():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// src/Newsletter/NewsletterManager.php
namespace App\Newsletter;
use Symfony\Component\HttpFoundation\RequestStack;
class NewsletterManager
{
protected $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function anyMethod()
{
$request = $this->requestStack->getCurrentRequest();
// ... сделать что-то с запросом
}
// ...
}
Теперь, просто внедрите request_stack
, который ведёт себя, как любой нормальный
сервис. Если вы используете
конфигурацию services.yml по умолчанию ,
это случится автоматически благодаря автомонтажу.
Tip
В контроллере вы можете получить объект Request
, передав его в качестве
аргумента к вашему методу действия. Смотрите ,
чтобы узнать детали.