参考装配在我的SF3的项目,我有两个服务谁依赖对方,导致循环引用问题:服务与Symfony3
page_handler :
arguments : ["@sentence_handler"]
sentence_handler :
arguments : ["@page_handler"]
因为,从类页面处理器我用SentenceHandler一个句子添加到页面,并从SentenceHandler我使用PageHandler从页面获取所有句子。
我注意到三个选项来解决这个问题:
- 动我addSentence()方法来SentenceHandler:但我会从SentenceHandler修改页面,这是不符合逻辑的。
- 将getAllSentences()方法移至PageHandler:但我会从PageHandler中获取句子,这不合逻辑。
- 重复GETPAGE从页面处理器到SentenceHandler这将成为独立的()方法:但它不会干
什么是最好的方法是什么?你有另外一个想法吗?
最糟糕的方法是在两个服务中注入容器,并在需要时获取相关服务。通常避免做[this](http://symfony.com/doc/current/components/dependency_injection.html#avoiding-your-code-becoming-dependent-on-the-container) – Matteo
getPage功能可以移入它是自己的服务,并注入其他处理程序?这会照顾你干的问题。 – Cerad