これをコントローラーで使用できることはわかっています:
$this->get('translator')->trans('key_name')
...しかし、Symfony2 の GetResponseEvent または FilterResponseEvent イベントでトランスレータへの参照を取得するにはどうすればよいですか?
->getRequest() を使用できることはわかっていますが、 Request オブジェクトから取得する方法もわかりません。
これをコントローラーで使用できることはわかっています:
$this->get('translator')->trans('key_name')
...しかし、Symfony2 の GetResponseEvent または FilterResponseEvent イベントでトランスレータへの参照を取得するにはどうすればよいですか?
->getRequest() を使用できることはわかっていますが、 Request オブジェクトから取得する方法もわかりません。
サービス参照を追加services.yml
するだけです@translator
services.yml
services:
mylistener:
class: Your\Bundle\Listener\RequestListener
arguments: [ @translator ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
Your/Bundle/Listener/RequestListener.php
namespace Your\Bundle\Listener;
use Symfony\Component\Translation\TranslatorInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class RequestListener
{
protected $translator;
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
public function onKernelRequest(GetResponseEvent $event)
{
$this->translator->trans('key_name');
}
}