首页 > 解决方案 > Laravel 容器和绑定

问题描述

Laravel 5.6 文档说:

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

我不明白。

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

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

PS:据我了解:

“界面” -这是

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

标签: phplaravellaravel-5

解决方案


如果你有 :

class Something {

}

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

这同样适用于

class SomethingElse {
       public function __construct(Something $s) { }
}   

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

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

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


推荐阅读