How to Retrieve the Request from the Service Container
Warning: You are browsing the documentation for Symfony 2.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
As of Symfony 2.4, instead of injecting the request
service, you should
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
namespace AppBundle\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, just inject the request_stack
, which behaves like any normal service:
1 2 3 4 5
# src/AppBundle/Resources/config/services.yml
services:
newsletter_manager:
class: AppBundle\Newsletter\NewsletterManager
arguments: ["@request_stack"]
Tip
If you define a controller as a service then you can get the Request
object without injecting the container by having it passed in as an
argument of your action method. See Controller for
details.