Php 如何使用依赖项注入容器延迟加载?

Php 如何使用依赖项注入容器延迟加载?,php,dependency-injection,lazy-loading,ioc-container,Php,Dependency Injection,Lazy Loading,Ioc Container,我不熟悉依赖注入容器之类的东西 我有一个用户对象,我想用一个容器来构建它。在我的例子中,用户可能有大量与他/她相关联的注释对象,但我不会在每个请求中都需要它们 以前,我会让用户模型自己创建和加载评论模型,但我意识到这是一种糟糕的做法 如果我不想在构建用户时加载所有评论(例如,如果我想懒洋洋地加载评论),我如何使用DI和DIC实现这一点 注: 我知道已经有了解决方案,但在我了解它们的工作原理之前,我不想使用它们。这是一个学习基础知识的理论问题,然后我很可能会切换到一个已建立的框架。我不认为在模型中

我不熟悉依赖注入容器之类的东西

我有一个用户对象,我想用一个容器来构建它。在我的例子中,用户可能有大量与他/她相关联的注释对象,但我不会在每个请求中都需要它们

以前,我会让用户模型自己创建和加载评论模型,但我意识到这是一种糟糕的做法

如果我不想在构建用户时加载所有评论(例如,如果我想懒洋洋地加载评论),我如何使用DI和DIC实现这一点

注:
我知道已经有了解决方案,但在我了解它们的工作原理之前,我不想使用它们。这是一个学习基础知识的理论问题,然后我很可能会切换到一个已建立的框架。

我不认为在模型中加载依赖项是依赖项注入容器的责任。这是ORM、数据访问对象或应用程序服务的工作。DI容器然后负责配置和实例化ORM、DAO或服务类。

不要讨厌我的无知,但我认为依赖注入容器的工作实际上是将依赖注入到需要它们的对象中,不是吗?我想这就是我感到困惑的地方……这是真的,但是DI容器通常更静态(通过XML或PHP文件重新配置)。我不知道有哪种容器能够自然地从数据库中动态地提取信息。应用程序逻辑应该留在应用程序中,而不是DI容器中。感谢您的响应-那么DI容器对构建框架对象更感兴趣吗?例如,控制器、记录器等?然后,业务逻辑的东西更多地是通过orm构建的?确切地说。您自己的应用程序也是某种框架。您的类不知道它们是如何被实例化的,它们只是根据创建期间注入的对象提供适当的业务逻辑。再次感谢您的响应!最后一点澄清(顺便说一句,到目前为止你对我来说是有意义的)——对于像我的模型这样的东西,ORM将进行注入,对吗?在这种情况下,ORM的行为与DIC或IoC类似?