PHP中的多个DI容器?

我想在
PHP中构建的MVC应用程序中重构一些代码来使用依赖注入容器.

我目前正在研究Symfony DI组件,它看起来非常好.我理解DI和DI容器的基础知识,但是在整个应用程序中我是使用1个全局容器还是多个容器?

例如,假设我有:
“User”类需要依赖项:“ActiveRecord”和“Sessions”
“SiteStatistics”类需要依赖项:“ActiveRecord”和“Sessions”

User和SiteStatistic对象应该放在不同的容器中吗?或者我应该有一个包含我需要创建的所有内容的全局容器?

谢谢 :)

最佳答案 DI容器的优点在于您可以定义依赖关系,容器为您提供具有所有依赖关系的对象(以及依赖关系的依赖关系等).放置在容器中的对象越多,您可以将这些对象一起使用而不在其中一个对象中调用“new”的概率更高.

因此 – 如果User的“Sessions”对象和SiteStatistics的“Sessions”对象相同,那么一定只使用一个容器.如果它们不同,仍然使用一个容器,但在配置依赖项时为每个会话对象使用不同的标识符.

如果您正在寻找从SiteStatistics数据中隔离用户会话数据的方法,我认为DI容器是错误的.

点赞