私の目的は、開発者ツールバーに役立つ情報を表示するためにdata_collectorをクラスに追加することです。 マイサービス:Symfony2 ScopeCrossingInjectionExceptionプロトタイプスコープを使用する場合
services:
my_api.auth.login:
class: YO\ApiV1\Services\Auth\Login
arguments:
- requestId
- "@old_sound_rabbit_mq.login_rpc"
- "@service_container"
scope: prototype
私はすべての新しいコールのための別のインスタンスを持つようにスコープのプロトタイプを必要とします。ちなみに、service @ old_sound_rabbit_mq.login_rpcにはスコープ「prototype」もあります。
tags:
- { name: data_collector, template: "AcmeDebug:Collector:templatename", id: "your_collector_name" }
しかし、その後、私は例外だ:
ScopeCrossingInjectionException:範囲クロッシングインジェクションが検出されました: 定義「プロファイラ」を そして、私は行うことができるdata_collectorを、添付したいのですが別のスコープ階層に属するサービス「my_api.auth.login」 を参照します。このサービスは、一貫して利用可能な ではない可能性があります。一般に、 の定義「プロファイラ」をスコープ「プロトタイプ」に移動するか、「コンテナ」を という子スコープの「プロトタイプ」として宣言する方が安全です。他のスコープ が常にアクティブであることを確認できる場合は、strict = falseへの参照を設定して、このエラーを取り除く とすることができます。
私は何をすべきかわからないので、混乱します。プロパティを "strict = false"に設定しようとしましたが、何も起こりません。
に置き換えられましたか? – senK