非单例对象的Symfony2概念

时间:2014-06-20 08:41:41

标签: php symfony singleton

我刚读过这篇关于Symfony2 container concept的文章。我得到的印象是,通过容器实例化的每个类都是单例对象,意味着它只被实例化一次并且一直重用。所述文章中的示例引用了用于发送电子邮件的类。在这种情况下,单例方法可能有意义。

我的问题是:在Symfony2中处理和组织“普通”(非singelton)对象是否有最佳实践?

3 个答案:

答案 0 :(得分:2)

Symfony让你满意。

http://symfony.com/doc/current/cookbook/service_container/scopes.html

设置范围:定义服务时的原型,每次获得服务时都会获得不同的实例。

我怀疑你会发现"正常"服务是单身模式。

答案 1 :(得分:1)

如果您定义服务并通过容器访问它,您还可以定义a factory service,以便控制此类对象的创建。使用此方法,您还可以将任何参数传递给构造对象,并根据需要实例化任意数量的对象。

答案 2 :(得分:0)

你是对的,服务容器中的所有类都是单例。 我不认为有一个处理正常对象的最佳做法。但是如果你想在没有处理实例化的情况下拥有相同的实例,你可以创建一个工厂设计模式的服务。