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:
サービスで現在のリクエストにアクセスする必要があるときはいつでも、リクエストを必要とするメソッドに引数として追加するか、request_stack サービスを挿入して 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();
// ... 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.
次に、通常のサービスと同じように動作する request_stack を挿入します。デフォルトの services.yaml 構成を使用している場合、これはオートワイヤリングによって自動的に行われます。
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.
コントローラーでは、アクション メソッドに引数として渡すことで Request オブジェクトを取得できます。詳細については、コントローラーを参照してください。