我对laravel在IOC容器和外墙方面提供的所有好东西感到有些困惑.由于我不是一位经验丰富的程序员,因此学习起来势不可挡.
我想知道,这两个例子有什么区别:
'Foo'的门面并通过容器注册 App::bind()
'Foo'的门面并通过容器注册 App::singleton()
在我的最佳理解Foo::method()中将被重写,$app->make['foo']->method()因为在第一个示例Foo中将创建类的多个实例,并且在第二个示例中,因为它通过a绑定App::singleton(),所以Foo每次调用该对象上的Method时都将返回相同的实例.
如果这个问题的答案显而易见,我很抱歉,但我找不到任何关于这个问题的确认,也没有明确解释.
当阅读这里时,你会发现外墙并不是真正的外墙
无论如何,Facades 上的所有方法都是静态的(请自行查看Illuminate\Support\Facades)
有些别名实际上就是这样,例如普通类
'Arr' => Illuminate\Support\Arr::class,
它作为门面有什么意义?