您的位置:首页 > 其它

Service Provider

2015-09-10 15:51 148 查看


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容器的地方,只能写注册相关的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: