Service Provider

Service Provider


Service Provider 其实就是一段 启动程序 而已;它的主要作用是把类注册到ioc容器中去。

Service Provider 里面有2个重要的方法,一个boot(), 一个是register(), 其实启动程序主要也就干这两件事,一个是加载各种文件,配置,一个是注册;

Laravel 5 有一个专门管启动的文件夹,bootstrap,Service Provider其实本质上属于那一块功能的,实际上你在bootstrap里面写加载注册逻辑都是可以的。

现在Service Provider 放到了app文件夹是为了更方便管理,L4的时候很多人不知道在哪里写这些逻辑。不像传统的加载写法,把很多东西写在一个文件里,service provider可以建立很多个,你还可以为它们起名字,但是加载的时候其实都是一起加载的。

如果写了很多service provider,当然要在配置文件里配置一下,才能全部加载,于是你就看到 config/app.php 那里面一长串的service provider列表,同时我们也发现了service provider分开写的好处,就是写第三方包的时候,可以互不干扰。

你看到service provider那么长一串列表,可能会担心把这些全部加载,特别是把这些类全部加载进ioc容器会影响速度,于是Laravel service provider提供一个protected$defer=true;选项,可以智能加载,用的时候加载,不用的时候不加载,前提是在这个service provider里boot()方法下没有写东西。

service provider 里面的注册方法register()先运行,boot()后运行,register() 就是注册Ioc容器的地方,只能写注册相关的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值