我的目标是将 data_collector 添加到我的类中,以便在开发人员工具栏上显示一些有用的信息。我的服务:
services:
my_api.auth.login:
class: YO\ApiV1\Services\Auth\Login
arguments:
- requestId
- "@old_sound_rabbit_mq.login_rpc"
- "@service_container"
scope: prototype
我需要范围原型来为每个新调用提供不同的实例。顺便说一句,服务@old_sound_rabbit_mq.login_rpc 也有范围“原型”。而且,我想附上 data_collector,这可以通过以下方式完成:
tags:
- { name: data_collector, template: "AcmeDebug:Collector:templatename", id: "your_collector_name" }
但后来我遇到了一个例外:
ScopeCrossingInjectionException:检测到范围交叉注入:定义“分析器”引用了属于另一个范围层次结构的服务“my_api.auth.login”。此服务可能无法始终可用。通常,将定义“profiler”移动到“prototype”范围,或者将“container”声明为“prototype”的子范围更安全。如果您可以确定其他范围始终处于活动状态,则可以将引用设置为 strict=false 以消除此错误。
这让我很困惑,因为我不知道该怎么做。我试图设置属性“strict = false”,但没有任何反应。