如何保留依赖注入容器(PHP)的实例

时间:2012-02-16 21:34:37

标签: php dependency-injection design-patterns

我一直在使用DI概念,但现在我开始使用依赖注入容器(DIC)了。虽然有一点我不清楚。

在我的DIC中,我保留(例如)Config对象和Request对象。我理解请求范围中的这些对象(每次从此容器请求时使用相同的实例)保持不变。但这只发生在我重复使用DIC的同一个实例时。

我应该如何在课程中传递DIC?假设我想在我的Router类中使用它,我是否需要在我的Router类的构造函数中传递它?但是Router类是在另一个类中创建的,那个类也应该已经有了这个DIC对象。

或者我应该创建这个DIC的单身?

1 个答案:

答案 0 :(得分:7)

不要走Singleton路线。它有效地利用了DIC为您提供的所有优势。通常在构造函数中传递容器,或者在适用的情况下作为方法参数传递。

是的,这需要您在应用程序周围传递容器对象时付出额外的努力,但结果很好地反映了这些类依赖于此对象的工作。

相关问题