リスナーサービスがあります。その中のいくつかの設定パラメータを読みたいです。
リスナー クラス内のサービス コンテナーにアクセスするにはどうすればよいですか?
リスナーサービスがあります。その中のいくつかの設定パラメータを読みたいです。
リスナー クラス内のサービス コンテナーにアクセスするにはどうすればよいですか?
You can pass container parameters into your service by using the %your_param_name%
notation:
services:
kernel.listener.locale_listener:
class: My\BundleName\Listener\LocaleListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
arguments: [ @router, @service_container, %your_param_name% ]
which will present itself as (in this example) the 3rd argument in your service's constructor method:
public function __construct($router, $container, $paramValue)
{
// ...
}
@service_container
解決済み:それ自体を引数としてリスナー サービスに渡す必要があります。
MyBundleName/Resources/services.yml :
services:
kernel.listener.locale_listener:
class: My\BundleName\Listener\LocaleListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
arguments: [ @service_container ]
リスナー クラス:
class LocaleListener
{
protected $container;
public function __construct(\Symfony\Component\DependencyInjection\Container $container)
{
$this->container = $container;
}
..
public function Myfunction()
{
$languages = $this->container->getParameter('languages');
}
}