在我的SF3项目中,我有两个相互依赖并引起循环引用问题的服务:
page_handler :
arguments : ["@sentence_handler"]
sentence_handler :
arguments : ["@page_handler"]
因为,从类PageHandler中,我使用SentenceHandler向页面添加一个句子,而从SentenceHandler中,我使用PageHandler从Page中获取所有句子。
我注意到3种解决方案:
最好的方法是什么?您还有其他想法吗?
在两种服务上使用二传手注入:
page_handler:
class: PageHandler
calls:
- ["setSentenceHandler", ["@sentence_handler"]]
sentence_handler:
class: SentenceHandler
calls:
- ["setPageHandler", ["@page_handler"]]
只要您不需要/不使用构造器中的服务(无论如何还是有问题的),就不会有明显的区别。意味着您以后可以安全地将服务注入其他服务中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句