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

jay*_*ayv 10 php design-patterns dependency-injection

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

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

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

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

Mch*_*chl 7

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

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