【发布时间】:2016-02-25 17:09:10
【问题描述】:
自 4 个月以来我一直在做 laravel。我没有发现外观和合同之间的明显区别,因为它们都是一组接口。为什么我要使用外观而不是合同或合同而不是外观?
【问题讨论】:
标签: oop interface laravel-5.1
自 4 个月以来我一直在做 laravel。我没有发现外观和合同之间的明显区别,因为它们都是一组接口。为什么我要使用外观而不是合同或合同而不是外观?
【问题讨论】:
标签: oop interface laravel-5.1
是使用Facade 还是Contract 的问题归结为您希望如何解析类以及是否要使用接口。
立面
外观是一个类而不是接口(@987654321@ 是外观示例)。
外观仅用于从服务容器加载类更方便
要加载的类是门面类的getFacadeAccessor()方法中的determent。
例子:
// Without facade - resolving from service container
app('some_service')->methodName();
// Do the same through facade:
someService::methodName();
合同
例子:假设类some_service实现了接口Illuminate\Contracts\Config\Repository:
// resolving class directly from service container
app('some_service')->methodName();
// resolve through binding from contract
app('Illuminate\Contracts\Config\Repository')->methodName();
【讨论】: