Laravel 8 注册驱动
在 Laravel 注册一个自定义的缓存驱动,我们需要在 Cache 门面上使用 extend 方法。 对 Cache::extend 的调用可以在新的 Laravel 应用程序中自带的 App\Providers\AppServiceProvider 的 boot 方法中完成,或者你也可以自己创建服务提供者来存放扩展,只是不要忘记在 config/app.php 的 provider 的数组中注册服务提供者:
<?php
namespace App\Providers;
use App\Extensions\MongoStore;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\ServiceProvider;
class CacheServiceProvider extends ServiceProvider
{
/**
* 注册应用服务
*
* @return void
*/
public function register()
{
//
}
/**
* 引导应用服务
*
* @return void
*/
public function boot()
{
Cache::extend('mongo', function ($app) {
return Cache::repository(new MongoStore);
});
}
}传递给 extend 方法的第一个参数是驱动程序的名称。 该值对应 config/cache.php 配置文件中的 driver 选项。 第二个参数是返回 Illuminate\Cache\Repository 实例的闭包。该闭包中被传入一个 $app 的实例, 也就是 服务容器 的一个实例。
一旦你的扩展被注册以后,只需要更新配置文件 config/cache.php 的 driver 选项作为自定义扩展名称即可。