Skip to content

How to Retrieve the Request from the Service Container

Edit this page

Whenever you need to access the current request in a service, you can either add it as an argument to the methods that need the request or inject the request_stack service and access the Request by calling the getCurrentRequest() method:

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();
        // ... do something with the request
    }

    // ...
}

Now, inject the request_stack, which behaves like any normal service. If you're using the default services.yaml configuration, this will happen automatically via autowiring.

Tip

In a controller you can get the Request object by having it passed in as an argument to your action method. See Controller for details.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
TOC
    Version