私はリスナーサービスを持っています。 その中にいくつかの設定パラメータを読みたいと思います。Symfony2:リスナー内でconfigパラメータを取得する方法は?
リスナークラス内でサービスコンテナにアクセスするにはどうすればよいですか?
私はリスナーサービスを持っています。 その中にいくつかの設定パラメータを読みたいと思います。Symfony2:リスナー内でconfigパラメータを取得する方法は?
リスナークラス内でサービスコンテナにアクセスするにはどうすればよいですか?
サービスにコンテナパラメータを渡すことができます。b Y %your_param_name%
表記を使用して:
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% ]
:この場合には容器全体を渡す
public function __construct($router, $container, $paramValue)
{
// ...
}
は解決済み:
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');
}
}
私たちは、リスナー・サービス
MyBundleName /リソース/ services.ymlへの引数として@service_container
自体を渡す必要があります
もう少し詳しい情報はありますか?私はまたサービスとしてリスナーを持っています。私のconfig.ymlには、リスナーでアクセスするいくつかの設定がありますが、それらを引数として構成する必要がありますか? –
symfony 2.8以降では、これらの引数を引用符で囲む必要があります: 引数:["@router"、 "@service_container"、 "%your_param_name%"] – Naroh