Laravel 8 注冊驅(qū)動(dòng)

2021-07-17 17:41 更新

在 Laravel 注冊一個(gè)自定義的緩存驅(qū)動(dòng),我們需要在 Cache 門面上使用 extend 方法。 對 Cache::extend 的調(diào)用可以在新的 Laravel 應(yīng)用程序中自帶的 App\Providers\AppServiceProviderboot 方法中完成,或者你也可以自己創(chuàng)建服務(wù)提供者來存放擴(kuò)展,只是不要忘記在 config/app.php 的 provider 的數(shù)組中注冊服務(wù)提供者:

<?php

namespace App\Providers;

use App\Extensions\MongoStore;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\ServiceProvider;

class CacheServiceProvider extends ServiceProvider
{
    /**
     * 注冊應(yīng)用服務(wù)
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * 引導(dǎo)應(yīng)用服務(wù)
     *
     * @return void
     */
    public function boot()
    {
        Cache::extend('mongo', function ($app) {
            return Cache::repository(new MongoStore);
        });
    }
}

傳遞給 extend 方法的第一個(gè)參數(shù)是驅(qū)動(dòng)程序的名稱。 該值對應(yīng) config/cache.php 配置文件中的 driver 選項(xiàng)。 第二個(gè)參數(shù)是返回 Illuminate\Cache\Repository 實(shí)例的閉包。該閉包中被傳入一個(gè) $app 的實(shí)例, 也就是 服務(wù)容器 的一個(gè)實(shí)例。

一旦你的擴(kuò)展被注冊以后,只需要更新配置文件 config/cache.phpdriver 選項(xiàng)作為自定義擴(kuò)展名稱即可。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號