Laravel容器和绑定

时间:2018-05-18 11:29:25

标签: php laravel laravel-5

Laravel 5.6 Documentation说:

  

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

我不明白。

如果我不使用接口,是否意味着我不必在提供者的寄存器方法中使用任何bindigs?

然后,如果我不使用bindigs,如何使用依赖注入?

P.S .: 我不明白地说:

“interface” - 是this

“bindings” - 寄存器

中的bind()和singelton()

1 个答案:

答案 0 :(得分:2)

如果你有:

class Something {

}

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

同样如此
class SomethingElse {
       public function __construct(Something $s) { }
}   

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

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

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

明确绑定它