[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2112字,纯文字阅读大概需要4分钟。
内容图文
![[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose](/upload/InfoBanner/zyjiaocheng/405/fc5e106668d547c6af8228cae423e1df.jpg)
1、简介
服务提供者是Lumen应用启动的中心,你自己的应用以及所有Lumen的核心服务都是通过服务提供者启动。
但是,我们所谓的”启动“指的是什么?通常,这意味着注册对象,包括注册服务容器绑定、事件监听器、中间件甚至路由。服务提供者是应用配置的中心。
如果你打开Lumen自带的 bootstrap/app.php文件,将会看到一个 $app->register()调用,这里就是应用所要加载的所有服务提供者类。
2、编写服务提供者
所有的服务提供者继承自 Illuminate\Support\ServiceProvider类。继承该抽象类要求至少在服务提供者中定义一个方法: register。在 register方法内,你唯一要做的事情就是绑定对象到服务容器,不要尝试在其中注册任何事件监听器,路由或者任何其它功能。
2.1 register方法
正如前面所提到的,在 register方法中只绑定事物到服务容器,而不要做其他事情,否则话,一不小心就能用到一个尚未被加载的服务提供者提供的服务。
现在让我们来看看一个基本的服务提供者长什么样:
<?phpnamespace App\Providers;use Riak\Connection;use Illuminate\Support\ServiceProvider;class RiakServiceProvider extends ServiceProvider{ /** * 在容器中注册绑定. * * @return void */ public function register() { $this->app->singleton('Riak\Contracts\Connection', function ($app) { return new Connection(config('riak')); }); }}
该服务提供者只定义了一个 register方法,并使用该方法在服务容器中定义了一个 Riak\Connection的实现。如果你不太理解服务容器是怎么工作的,查看其文档。
2.2 boot方法
如果我们想要在服务提供者中注册视图composer该怎么做?这就要用到 boot方法了。该方法在所有服务提供者被注册以后才会被调用,这就是说我们可以在其中访问框架已注册的所有其它服务:
<?phpnamespace App\Providers;use Queue;use Illuminate\Support\ServiceProvider;class AppServiceProvider extends ServiceProvider{ // Other Service Provider Properties... /** * Bootstrap any application services. * * @return void */ public function boot() { Queue::failing(function ($event) { }); }}
3、注册服务提供者
所有服务提供者都是通过配置文件 bootstrap/app.php中进行注册,该文件包含了一个 $app->register()方法调用,你可以将自己自定义的服务提供者放到该方法调用中来注册服务提供者。
内容总结
以上是互联网集市为您收集整理的[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose全部内容,希望文章能够帮你解决[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。