使用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);
答案 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
希望这有帮助!