Php symfony使用自由对象
我想在symfony中构建几个对象,它们将完成特定的工作。例如,一个对象Php symfony使用自由对象,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我想在symfony中构建几个对象,它们将完成特定的工作。例如,一个对象Parser将有一个公共方法parse($text),并将返回解析后的文本。所有其他方法都是private来管理解析 在这个解析方法中,我想将一些工作排除在其他对象之外。例如,清洁和突出显示 我想将解析器作为服务。但我是否还需要创建其他对象的服务来包含它们?我不打算在控制器中使用它们。在解析器对象中,我可以使用 new Highlight(); 但是现在我遇到了一个问题,因为我想在高亮显示中使用条令实体管理器。在服务中,我
Parser
将有一个公共方法parse($text)
,并将返回解析后的文本。所有其他方法都是private
来管理解析
在这个解析方法中,我想将一些工作排除在其他对象之外。例如,清洁
和突出显示
我想将解析器
作为服务。但我是否还需要创建其他对象的服务来包含它们?我不打算在控制器中使用它们。在解析器
对象中,我可以使用
new Highlight();
但是现在我遇到了一个问题,因为我想在高亮显示中使用条令实体管理器。在服务中,我会通过服务参数注入它,但因为Highlight
不是不可能的服务
我应该如何向这个“自由”对象注入原则突出显示。一般来说,在symfony中这样使用对象可以吗?不需要为从解析器调用的每个对象创建服务,除非您将独立地需要这些子对象(干净、突出显示)。如果需要将其他内容传递给子对象,只需从调用对象(解析器)传递即可。只需将实体管理器注入解析器,然后将其传递给子对象
从解析器:
new Highlight($em);
或者,您可以通过定义一个抽象服务(在父(抽象)服务中定义公共依赖项),然后在依赖对象中扩展该服务,来使用此服务的一种变体。有关详细信息,请参阅文档。是-您可以在Symfony中制作任何您喜欢的服务。