How to Retrieve the Request from the Service Container
How to Retrieve the Request from the Service Container
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()](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/HttpFoundation/RequestStack.php "Symfony\Component\HttpFoundation\RequestStack::getCurrentRequest()")
method:
// 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 The Request object as a Controller Argument for details.
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.