Laravel 8 編寫驅(qū)動

2021-07-17 17:40 更新

要創(chuàng)建自定義的緩存驅(qū)動,首先需要實現(xiàn) Illuminate\Contracts\Cache\Store contract 契約。因此, MongoDB 緩存實現(xiàn)看起來就像是這樣:

<?php

namespace App\Extensions;

use Illuminate\Contracts\Cache\Store;

class MongoStore implements Store
{
    public function get($key) {}
    public function many(array $keys) {}
    public function put($key, $value, $seconds) {}
    public function putMany(array $values, $seconds) {}
    public function increment($key, $value = 1) {}
    public function decrement($key, $value = 1) {}
    public function forever($key, $value) {}
    public function forget($key) {}
    public function flush() {}
    public function getPrefix() {}
}

我們只需要 MongoDB 的連接來實現(xiàn)這些方法。 關(guān)于如何實現(xiàn)這些方法中的實例,可以通過閱讀源代碼 Illuminate\Cache\MemcachedStore 來加以理解。 一旦我們完成契約接口的實現(xiàn),我們就可以通過以下的示例來完成自定義驅(qū)動的注冊了。

Cache::extend('mongo', function ($app) {
    return Cache::repository(new MongoStore);
});

技巧:如果你不知道該將緩存驅(qū)動的代碼放在什么地方,你可以在你的 app 文件夾下創(chuàng)建一個 Extensions 的命名空間。 值得注意的是,Laravel 并沒有硬性規(guī)定應(yīng)用程序的結(jié)構(gòu)。因此你可以根據(jù)自己的喜好自由的組織你的應(yīng)用程序。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號