国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Lumen 服務(wù)提供者

2021-09-15 14:41 更新

1、簡(jiǎn)介

服務(wù)提供者是所有Lumen應(yīng)用啟動(dòng)的中心,你自己的應(yīng)用以及所有Lumen的核心服務(wù)都是通過(guò)服務(wù)提供者啟動(dòng)。

但是,我們所謂的”啟動(dòng)“指的是什么?通常,這意味著注冊(cè)事物,包括注冊(cè)服務(wù)容器綁定、時(shí)間監(jiān)聽(tīng)器、中間件甚至路由。服務(wù)提供者是應(yīng)用配置的中心。

如果你打開(kāi)Lumen自帶的bootstrap/app.php文件,將會(huì)看到一個(gè)$app->register()調(diào)用,這里就是應(yīng)用所要加載的所有服務(wù)提供者類(lèi)。

本章里你將會(huì)學(xué)習(xí)如何編寫(xiě)自己的服務(wù)提供者并在Lumen應(yīng)用中注冊(cè)它們。

2、編寫(xiě)服務(wù)提供者

所有的服務(wù)提供者繼承自Illuminate\Support\ServiceProvider類(lèi)。繼承該抽象類(lèi)要求至少在服務(wù)提供者中定義一個(gè)方法:register。在register方法內(nèi),你唯一要做的事情就是綁事物到服務(wù)容器,不要嘗試在其中注冊(cè)任何時(shí)間監(jiān)聽(tīng)器,路由或者任何其它功能。

2.1 register方法

正如前面所提到的,在register方法中只綁定事物到服務(wù)容器,而不要做其他事情,否則話(huà),一不小心就能用到一個(gè)尚未被加載的服務(wù)提供者提供的服務(wù)。

現(xiàn)在讓我們來(lái)看看一個(gè)基本的服務(wù)提供者長(zhǎng)什么樣:

<?php

namespace App\Providers;

use Riak\Connection;
use Illuminate\Support\ServiceProvider;

class RiakServiceProvider extends ServiceProvider{
    /**
     * 在容器中注冊(cè)綁定.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('Riak\Contracts\Connection', function ($app) {
            return new Connection(config('riak'));
        });
    }
}

該服務(wù)提供者只定義了一個(gè)register方法,并使用該方法在服務(wù)容器中定義了一個(gè)Riak\Contracts\Connection的實(shí)現(xiàn)。如果你不太理解服務(wù)容器是怎么工作的,查看其文檔。

2.2 boot方法

如果我們想要在服務(wù)提供者中注冊(cè)視圖composer該怎么做?這就要用到boot方法了。該方法在所有服務(wù)提供者被注冊(cè)以后才會(huì)被調(diào)用,這就是說(shuō)我們可以在其中訪(fǎng)問(wèn)框架已注冊(cè)的所有其它服務(wù):

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class EventServiceProvider extends ServiceProvider{
    /**
     * Perform post-registration booting of services.
     *
     * @return void
     */
    public function boot()
    {
        view()->composer('view', function () {
            //
        });
    }

    /**
     * 在容器中注冊(cè)綁定.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

3、注冊(cè)服務(wù)提供者

所有服務(wù)提供者都是通過(guò)配置文件bootstrap/app.php中進(jìn)行注冊(cè),該文件包含了一個(gè)$app->register()方法調(diào)用,你可以將自己自定義的服務(wù)提供者放到該方法調(diào)用中來(lái)注冊(cè)服務(wù)提供者。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)