Quando provo a iniettare il @request in uno qualsiasi dei miei servizi, ottengo questa eccezione:Come iniettare @request in un servizio?
ScopeWideningInjectionException: progressivo ampliamento iniezione rilevato: La definizione "service.navigation" fa riferimento al servizio di "richiesta" che appartiene a un ambito più ristretto. Generalmente, è più sicuro spostare "service.navigation" su scope "request" o fare affidamento su il modello del provider iniettando il contenitore stesso e richiedendo il servizio "richiesta" ogni volta che è necessario. In rari casi speciali tuttavia potrebbe non essere necessario, quindi è possibile impostare il riferimento a strict = false per sbarazzarsi di questo errore.
Qual è il modo migliore per procedere? Dovrei provare a impostare questo strict=false
e come, o NON dovrei iniettare il servizio di richiesta, ma piuttosto passarlo al servizio attraverso il mio controller ogni volta che chiamo funzioni di cui ho bisogno?
Un'altra possibilità sarebbe quella di iniettare il kernel e portarlo da lì, ma nel mio servizio sto usando solo @router e @request, quindi iniettare l'intero kernel sarebbe irrazionale.
Grazie!
Sembra interessante, mi dispiace, ma potresti riscriverlo in YAML? Ho provato un paio di dichiarazioni del genere (trovate su altri siti), ma non riesco a farlo bene. –
Che funziona meravigliosamente, in YAML sarebbe qualcosa di simile: 'service.sample: class: Company \ SiteBundle \ Services \ Esempi di esempio: [@request] public: true scope: request' –
ci sono altri valori per scope? cercando di eseguire un servizio dalla CLI –