我知道我可以在控制器中使用它:
$this->get('translator')->trans('key_name')
...但是如何在Symfony2 GetResponseEvent或FilterResponseEvent事件中引用转换器?
我知道我可以使用 - > getRequest()但我不知道如何从Request对象中获取它。
答案 0 :(得分:7)
在services.yml
中,您只需添加@translator
服务参考
的 services.yml 强>
services:
mylistener:
class: Your\Bundle\Listener\RequestListener
arguments: [ @translator ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
您/捆绑/监听器/ 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');
}
}