Як отримати запит з сервіс-контейнера

Дата оновлення перекладу 2023-06-05

Як отримати запит з сервіс-контейнера

Коли вам потрібно отримати доступ до поточного запиту у сервісі, ви можете або додати його в якості аргументу до методів, які потребують запиту, або впровадити сервіс 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, передавши його в якості аргументу до вашого методу дії. Дивіться , щоб дізнатися деталі.