Laravel 容器和绑定

Joh*_*ent 5 php laravel laravel-5

Laravel 5.6 文档说:

如果类不依赖于任何接口,则无需将类绑定到容器中。不需要指示容器如何构建这些对象,因为它可以使用反射自动解析这些对象。

我不明白。

这是否意味着如果我不使用接口,我就不必在提供者的注册方法中使用任何绑定?

那么,如果我不使用 bindigs,我该如何使用依赖注入呢?

PS:在我的理解中:

“界面” -这是

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

apo*_*fos 4

如果你有 :

class Something {

}
Run Code Online (Sandbox Code Playgroud)

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

同样适用于

class SomethingElse {
       public function __construct(Something $s) { }
}   
Run Code Online (Sandbox Code Playgroud)

在这种情况下,构造函数也会经历依赖注入。这一切都是由容器自动处理的。

然而,这显然不适用于接口,因为无法构造接口。

另外,如果您需要将某些内容绑定为单例,则需要使用显式绑定它app()->singleton(...)