gpt4 book ai didi

PHP 依赖注入(inject)

转载 作者:可可西里 更新时间:2023-10-31 22:18:07 24 4
gpt4 key购买 nike

我正在努力了解依赖注入(inject),并且我在很大程度上理解它。

但是,如果由于某种原因,我的一个类依赖于多个类,而不是在构造函数中将所有这些都传递给这个类,是否有更好、更明智的方法?

我听说过 DI 容器,这是我解决这个问题的方式吗?我应该从哪里开始使用这个解决方案?我是否将依赖项传递给我的 DIC,然后将其传递给需要这些依赖项的类?

任何能为我指明正确方向的帮助都会很棒。

最佳答案

依赖注入(inject) !== DIC

人们真的应该停止混淆它们。 Dependency Injection是来自Dependency Inversion principle的想法.

DIC 是“ Elixir ”,它 promise 让您使用依赖注入(inject),但在 PHP 中通常是通过打破面向对象编程的所有其他原则来实现的。最糟糕的实现往往还通过静态 RegistrySingleton 将其全部附加到全局状态。

无论如何,如果您的类依赖太多其他类,那么一般来说,这表示该类本身存在设计缺陷。你基本上有一个类有太多的理由改变,因此,打破了 Single Responsibility principle .

在这种情况下,依赖注入(inject)容器只会隐藏底层设计问题。

如果您想了解有关依赖注入(inject)的更多信息,我建议您在 youtube 上观看“Clean Code Talks”:

关于PHP 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064970/

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