Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php symfony使用自由对象_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php symfony使用自由对象

Php symfony使用自由对象,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我想在symfony中构建几个对象,它们将完成特定的工作。例如,一个对象Parser将有一个公共方法parse($text),并将返回解析后的文本。所有其他方法都是private来管理解析 在这个解析方法中,我想将一些工作排除在其他对象之外。例如,清洁和突出显示 我想将解析器作为服务。但我是否还需要创建其他对象的服务来包含它们?我不打算在控制器中使用它们。在解析器对象中,我可以使用 new Highlight(); 但是现在我遇到了一个问题,因为我想在高亮显示中使用条令实体管理器。在服务中,我

我想在symfony中构建几个对象,它们将完成特定的工作。例如,一个对象
Parser
将有一个公共方法
parse($text)
,并将返回解析后的文本。所有其他方法都是
private
来管理解析

在这个解析方法中,我想将一些工作排除在其他对象之外。例如,
清洁
突出显示

我想将
解析器
作为服务。但我是否还需要创建其他对象的服务来包含它们?我不打算在控制器中使用它们。在
解析器
对象中,我可以使用

new Highlight();
但是现在我遇到了一个问题,因为我想在
高亮显示
中使用条令实体管理器。在服务中,我会通过服务参数注入它,但因为
Highlight
不是不可能的服务


我应该如何向这个“自由”对象注入原则
突出显示
。一般来说,在symfony中这样使用对象可以吗?

不需要为从解析器调用的每个对象创建服务,除非您将独立地需要这些子对象(干净、突出显示)。如果需要将其他内容传递给子对象,只需从调用对象(解析器)传递即可。只需将实体管理器注入解析器,然后将其传递给子对象

从解析器:

new Highlight($em);

或者,您可以通过定义一个抽象服务(在父(抽象)服务中定义公共依赖项),然后在依赖对象中扩展该服务,来使用此服务的一种变体。有关详细信息,请参阅文档。

是-您可以在Symfony中制作任何您喜欢的服务。