阅读(1871)
赞(9)
Laravel 8 注册驱动
2021-06-30 17:14:50 更新
在 Laravel 注册一个自定义的缓存驱动,我们需要在 Cache
门面上使用 extend
方法。 对 Cache::extend
的调用可以在新的 Laravel 应用程序中自带的 AppProvidersAppServiceProvider
的 boot
方法中完成,或者你也可以自己创建服务提供者来存放扩展,只是不要忘记在 config/app.php
的 provider 的数组中注册服务提供者:
<?php
namespace AppProviders;
use AppExtensionsMongoStore;
use IlluminateSupportFacadesCache;
use IlluminateSupportServiceProvider;
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
选项。 第二个参数是返回 IlluminateCacheRepository
实例的闭包。该闭包中被传入一个 $app
的实例, 也就是 服务容器 的一个实例。
一旦你的扩展被注册以后,只需要更新配置文件 config/cache.php
的 driver
选项作为自定义扩展名称即可。