如何在 Laravel 6.X 中传递 PSR-6 兼容缓存适配器?
How to pass a PSR-6 compliant cache adapter in Laravel 6.X?
我注意到有一个 cache.psr6 容器别名,但如果我使用:
new Cache
例如,我收到一条错误消息,指出 getItems 不可用,我认为这意味着我没有传递符合 PSR-6 的缓存实例。如果以任何方式更改配置,我正在使用 Redis。
是否需要进行额外的配置,或者我传递的方式有误?
我使用的库是:https://github.com/AlexaCRM/dynamics-webapi-toolkit/wiki/Tutorial
并且教程指出:
You can optionally supply a PSR-6 compliant cache adapter.
$settings->cachePool = $cacheAdapter;
我的问题是,$cacheAdapter 是什么?
适配器将是 Psr16Adapter
over a cache driver which is how cache.psr6
is bound in the default CacheServiceProvider
。
如果您将 redis 配置为默认缓存驱动程序,则只需将缓存池设置为 cache.psr6
。
$settings->cachePool = app('cache.psr6');
但是您可能 运行 进入 Class 'Symfony\Component\Cache\Adapter\Psr16Adapter' not found
错误,因为 symfony/cache
只是 laravel/framework
中的开发依赖项。您可以通过在您的应用程序中要求它来解决这个问题。
composer require symfony/cache
我注意到有一个 cache.psr6 容器别名,但如果我使用:
new Cache
例如,我收到一条错误消息,指出 getItems 不可用,我认为这意味着我没有传递符合 PSR-6 的缓存实例。如果以任何方式更改配置,我正在使用 Redis。
是否需要进行额外的配置,或者我传递的方式有误?
我使用的库是:https://github.com/AlexaCRM/dynamics-webapi-toolkit/wiki/Tutorial
并且教程指出:
You can optionally supply a PSR-6 compliant cache adapter.
$settings->cachePool = $cacheAdapter;
我的问题是,$cacheAdapter 是什么?
适配器将是 Psr16Adapter
over a cache driver which is how cache.psr6
is bound in the default CacheServiceProvider
。
如果您将 redis 配置为默认缓存驱动程序,则只需将缓存池设置为 cache.psr6
。
$settings->cachePool = app('cache.psr6');
但是您可能 运行 进入 Class 'Symfony\Component\Cache\Adapter\Psr16Adapter' not found
错误,因为 symfony/cache
只是 laravel/framework
中的开发依赖项。您可以通过在您的应用程序中要求它来解决这个问题。
composer require symfony/cache