gpt4 book ai didi

php - Laravel 容器和绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 16:40:49 24 4
gpt4 key购买 nike

Laravel 5.6 Documentation说:

There is no need to bind classes into the container if they do not depend on any interfaces. The container does not need to be instructed on how to build these objects, since it can automatically resolve these objects using reflection.



我不明白。

这是否意味着如果我不使用接口(interface),我不必在提供者的 register 方法中使用任何绑定(bind)?

那么,如果我不使用绑定(bind),我该如何使用依赖注入(inject)呢?

PS:
据我了解:

“接口(interface)” - 是 this

“绑定(bind)” - 是寄存器内的 bind() 和 singelton()

最佳答案

如果你有 :

class Something {

}

你可以做 app()->make(Something::class)无需事先绑定(bind)。容器知道它可以只调用默认构造函数。

这同样适用于
class SomethingElse {
public function __construct(Something $s) { }
}

在这种情况下,构造函数也将通过依赖注入(inject)。这一切都由容器自动处理。

但是,这显然不适用于接口(interface),因为无法构造接口(interface)。

此外,如果您需要将某些东西绑定(bind)为单例,则需要使用 app()->singleton(...) 显式绑定(bind)它。

关于php - Laravel 容器和绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50410348/

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