Php Symfony2将实例化对象传递给服务,而不是新对象
我希望将一个已安装的对象传递给我的服务构造函数,而不是创建一个新的对象。要创建一个新的对象,我需要执行以下操作:Php Symfony2将实例化对象传递给服务,而不是新对象,php,symfony,Php,Symfony,我希望将一个已安装的对象传递给我的服务构造函数,而不是创建一个新的对象。要创建一个新的对象,我需要执行以下操作: services: ExampleService: class: Ex\ModelBundle\lib\Ex\ExSave LoginService: class: Snap\ModelBundle\Service\Login arguments: ["@doctrine.orm.entity_manager", "@
services:
ExampleService:
class: Ex\ModelBundle\lib\Ex\ExSave
LoginService:
class: Snap\ModelBundle\Service\Login
arguments: ["@doctrine.orm.entity_manager", "@ExampleService"]
如何将已安装的ExampleService传递给LoginService默认情况下,所有服务都具有容器范围,根据文档,这意味着: 每次从该容器请求时都会使用相同的实例 因此,您创建了
ExampleService
,但对该服务的任何其他后续请求都将返回其先前创建的实例
归根结底,多个服务可以(也将)使用您的ExampleService
的共享实例
或者,您可以使用
基本上,您不会将
@ExampleService
传递给\uu construct
,而是传递给单独的setter,setter将设置属性值(在服务内)。然后你照常使用你的服务 您是说ExampleService应该引用在容器外部创建的某个对象吗?它的用例是什么?