"关于laravel有很多很棒设计,我一直不太明白,Facade和ServiceProvider的应用场景 我一般建立一个Services目录,里面写上UsersService,ArticleServ

Laravel框架的其中一条核心思想是让开发者愉快的开发,所以它的接口做的非常友好,Facade只是一个捷径而已,所有的Facade接口都可以通过依赖注入的方式获取,完全根据开发者的喜好来选择,所以没有什么场景适合用Facade这一说。
Laravel框架的另一条思想是同一件事情,可以有多种做法,举例如下:
/** 调用Request服务 */
public function (\Illuminate\Http\Request $request) {
    /** 三种方式等价 */
    $inputs = $request->all(); // 依赖注入(DI)
    $inputs = \Request::all(); // Facade
    $inputs= = request()->all(); // 助手方法(helper method)
}
至于服务提供器Service Provider什么时候使用,简单解释如下:

如果你的服务(Services)不依赖于其他服务,则不需要服务提供器(Service Provider),你只需通过依赖注入该服务,Laravel的IoC容器会通过PHP的反射服务来实例化该服务。
反而,如果你的服务需要注入其他依赖服务,或者你的服务需要在使用前进行一些初始化的操作(bootstrap),那么这个时候,你就需要在服务提供器(Service Provider)的register方法内将服务绑定到Laravel的IoC容器内,进而在boot方法内,进行初始化操作(bootstrap),这个时候,程序所有的服务都已注册完毕,所以初始化的过程中,还可以调用其他服务。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值