gpt4 book ai didi

php - 我应该在 MVC 中将依赖注入(inject)容器 (DIC) 作为参数传递吗?

转载 作者:IT王子 更新时间:2023-10-29 00:06:16 24 4
gpt4 key购买 nike

我目前正在编写自己的 MVC 框架用于学习目的,我决定使用依赖注入(inject)容器在类之间共享常用对象(例如数据库实例)。

我在我的 Bootstrap 文件中初始化了容器,并且在我的 Application 类中有一个它的实例,在路由过程中传递容器实例是一个好习惯吗? (即将容器对象作为参数传递给 ControllerBase 构造函数)。此外,在我的 ModelBase 的构造函数中接受容器作为参数是否是一种好习惯?

最佳答案

这听起来像是依赖注入(inject)器与您正在做的事情不同。它听起来更像是 ServiceLocator、存储库或其他任何东西。通常依赖注入(inject)器在调用之间(如果你将它用于参数注入(inject))或创建之间(如果你将它用于字段或构造函数注入(inject))。

依赖注入(inject)器的使用必须对被注入(inject)的代码/对象完全透明。因此,如果您传递引用,您就会做错事。

DependencyInjector 也属于您的代码运行的环境。照原样看。应用程序甚至不应该知道依赖项注入(inject)器,除非您将应用程序用作您在其中运行的框架。

所以让依赖注入(inject)工作意味着在实际应用程序中不引用注入(inject)器。目标是通过注入(inject)或不注入(inject)两种方式运行应用程序。期间。

关于php - 我应该在 MVC 中将依赖注入(inject)容器 (DIC) 作为参数传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28460942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com