Symfony 依赖注入-最好的方法是什么?

Symfony 依赖注入-最好的方法是什么?,symfony,dependency-injection,Symfony,Dependency Injection,场景 谈谈Symfony2。我有一个实体和他的二传手和接球手。其中一个setter有点特殊,因为必须检索一些相关对象,做一些事情并写回关系 为了检索这些对象,我想到的是使用与我的实体相关的实体管理器和存储库 问题 我无法直接从实体访问实体管理器。一种可能的解决方案是将E.M.注入该实体,但据我所知,不建议将依赖项注入用于该实体 可能的解决方案 编写一个服务,将其注入E.M.,将服务用于实体。 请注意这一点:我无法在其他地方实例化我的实体,因为捆绑包(SonataAdmin)负责执行此操作 这是一

场景

谈谈Symfony2。我有一个实体和他的二传手和接球手。其中一个setter有点特殊,因为必须检索一些相关对象,做一些事情并写回关系
为了检索这些对象,我想到的是使用与我的实体相关的实体管理器和存储库

问题

我无法直接从实体访问实体管理器。一种可能的解决方案是将E.M.注入该实体,但据我所知,不建议将依赖项注入用于该实体

可能的解决方案

编写一个服务,将其注入E.M.,将服务用于实体。
请注意这一点:我无法在其他地方实例化我的实体,因为捆绑包(SonataAdmin)负责执行此操作


这是一种很好的方法,还是存在一种更好的方法?

假设您正在使用实体1。你需要得到实体2

我将创建一个服务,使用一个函数获取实体1作为参数。为该服务提供E.M.,并获得实体2


实体文件不是为这样的事情而设计的,服务在这里帮助您。

假设您正在使用实体1。你需要得到实体2

我将创建一个服务,使用一个函数获取实体1作为参数。为该服务提供E.M.,并获得实体2


实体文件不是为这样的事情而制作的,服务是在这里帮助您的。

我同意-您不想在您的应用程序中添加任何服务entities@Gmajoulet:是的,我知道,正如我之前所说的。。。。这正是我所说的。看看我给塞浦路斯人的评论。我想知道我的想法是否好……是的,但你也写了“写一个服务,注入到它中,使用服务到实体中。”。您不希望在实体内使用服务。相反,一个更好的想法是(如@Gmajoulet所说)使用服务并将实体传递给它(这样您就不会在实体中使用任何服务),看起来您已经有了答案是的,这是一个很好的方法。我同意-你不想把任何服务放在你的网站上entities@Gmajoulet:是的,我知道,正如我之前所说的。。。。这正是我所说的。看看我给塞浦路斯人的评论。我想知道我的想法是否好……是的,但你也写了“写一个服务,注入到它中,使用服务到实体中。”。您不希望在实体内使用服务。相反,一个更好的想法是(如@Gmajoulet所说)使用服务并将实体传递给它(这样您就不会在实体中使用任何服务),看起来您已经有了答案是的,这是一个很好的方法。在你的实体之间建立真正的关系是一种选择吗?在这种情况下,您可以轻松访问相关实体。@m0c我不明白您在说什么……如果您只想在实体B中获取实体A,我将创建与@ORM\OneToOne或类似内容的关系。或者您想检索另一个不代表实体的“对象”吗?我会检索其他对象,即在您的实体之间创建真实关系的选项?在这种情况下,您可以轻松访问相关实体。@m0c我不明白您在说什么……如果您只想在实体B中获取实体A,我将创建与@ORM\OneToOne或类似内容的关系。或者您想检索另一个不代表实体的“对象”吗?我将检索另一个对象