Il mio obiettivo è aggiungere data_collector alle mie classi per visualizzare alcune informazioni utili sulla barra degli strumenti dello sviluppatore. Il mio servizio:Symfony2 ScopeCrossingInjectionException quando si utilizza l'ambito prototipo
services:
my_api.auth.login:
class: YO\ApiV1\Services\Auth\Login
arguments:
- requestId
- "@old_sound_rabbit_mq.login_rpc"
- "@service_container"
scope: prototype
ho bisogno prototipo scopo di avere un'istanza diversa per ogni nuova chiamata. A proposito, service @ old_sound_rabbit_mq.login_rpc ha anche un "prototipo" di scope. E, mi piacerebbe attaccare data_collector, che potrebbe essere fatto con:
tags:
- { name: data_collector, template: "AcmeDebug:Collector:templatename", id: "your_collector_name" }
Ma poi ho ricevuto un'eccezione:
ScopeCrossingInjectionException: Ambito Crossing iniezione rilevato: La definizione "profiler" fa riferimento al servizio "my_api.auth.login" che appartiene a un'altra gerarchia di ambito. Questo servizio potrebbe non essere disponibile in modo coerente. In generale, è più sicuro spostare la definizione "profiler" in "prototipo" dell'ambito o dichiarare "contenitore" come un ambito figlio di "prototipo". Se si è certi che l'altro ambito è sempre attivo, è possibile impostare il riferimento su strict = false per eliminare di questo errore.
E mi confonde, perché non so cosa fare. Ho provato a impostare la proprietà "strict = false", ma non succede nulla.
@mactpo hai trovato una soluzione per questo? – senK