在独立的Laravel缓存实例中添加自定义缓存驱动程序

时间:2017-03-03 13:28:38

标签: php laravel-5

使用Laravel(Illuminate/Cache)的缓存组件作为我的应用程序的缓存后端,如何注册新的自定义缓存驱动程序?由于我根本不使用Laravel(仅Illuminate/Cache),因此我无法将其添加到服务提供程序并且Cache facade返回并出错。

请注意,我已成功使用默认驱动程序(文件,memcached,redis),并使用Illuminate\Container\Container函数将配置文件传递到空singleton内:

编辑 - 示例代码我如何获得缓存存储:

$app = new Illuminate\Container\Container();

// Where $config is an array of config values
$app->singleton('config', function() use ($config) {
    return $config;
});

$app->singleton('files', function() {
    return new Illuminate\Filesystem\Filesystem();
});

$cacheManager = new CacheManager($app);

// Where $storeName is linked to the configs values
return $cacheManager->store($storeName);

1 个答案:

答案 0 :(得分:1)

首先,您需要确保驱动程序扩展Illuminate\Contracts\Cache\Store接口。

然后你应该能够做类似的事情:

$cacheManager->extend('you-custom-driver-name', function ($app) use($cacheManager) {
    return $cacheManager->repository(new YourCustomDriver);
});

https://laravel.com/docs/5.4/cache#adding-custom-cache-drivers

希望这有帮助!