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
选项作为自定义扩展名称即可。