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()
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.