Моя цель - добавить 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
Мне нужен прототип прототипа, чтобы иметь разные экземпляры для каждого нового вызова. Кстати, service @old_sound_rabbit_mq.login_rpc имеет область "prototype". И я хотел бы добавить data_collector, что можно сделать с помощью:
tags:
- { name: data_collector, template: "AcmeDebug:Collector:templatename", id: "your_collector_name" }
Но потом я получил исключение:
ScopeCrossingInjectionException: обнаружено пересечение области пересечения: Определение "профилировщик" ссылается на сервис "my_api.auth.login" который принадлежит другой иерархии областей. Эта услуга может не быть доступный последовательно. Как правило, безопаснее либо перемещать определение "профилировщик" в область "prototype" или объявить "контейнер" как дочерний масштаб "prototype". Если вы можете быть уверены, что другая область всегда активен, вы можете установить ссылку на strict = false, чтобы избавиться этой ошибки.
И это меня смущает, потому что я не знаю, что делать. Я попытался установить свойство "strict = false", но ничего не происходит.