视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
[Lumen5.2文档]更多特性--服务提供者_html/css_WEB-ITnose
2020-11-27 16:19:58 责编:小采
文档

1、简介

服务提供者是Lumen应用启动的中心,你自己的应用以及所有Lumen的核心服务都是通过服务提供者启动。

但是,我们所谓的”启动“指的是什么?通常,这意味着注册对象,包括注册服务容器绑定、事件、中间件甚至路由。服务提供者是应用配置的中心。

如果你打开Lumen自带的 bootstrap/app.php文件,将会看到一个 $app->register()调用,这里就是应用所要加载的所有服务提供者类。

2、编写服务提供者

所有的服务提供者继承自 Illuminate\Support\ServiceProvider类。继承该抽象类要求至少在服务提供者中定义一个方法: register。在 register方法内,你唯一要做的事情就是绑定对象到服务容器,不要尝试在其中注册任何事件,路由或者任何其它功能。

2.1 register方法

正如前面所提到的,在 register方法中只绑定事物到服务容器,而不要做其他事情,否则话,一不小心就能用到一个尚未被加载的服务提供者提供的服务。

现在让我们来看看一个基本的服务提供者长什么样:

app->singleton('Riak\Contracts\Connection', function ($app) { return new Connection(config('riak')); }); }}

该服务提供者只定义了一个 register方法,并使用该方法在服务容器中定义了一个 Riak\Connection的实现。如果你不太理解服务容器是怎么工作的,查看其文档。

2.2 boot方法

如果我们想要在服务提供者中注册视图composer该怎么做?这就要用到 boot方法了。该方法在所有服务提供者被注册以后才会被调用,这就是说我们可以在其中访问框架已注册的所有其它服务:

3、注册服务提供者

所有服务提供者都是通过配置文件 bootstrap/app.php中进行注册,该文件包含了一个 $app->register()方法调用,你可以将自己自定义的服务提供者放到该方法调用中来注册服务提供者。

下载本文
显示全文
专题