Laravel PSR-16 Cache.Адаптация \ Predis \ Client к \ Redis? - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь использовать кэш redis laravel внутри пакета, который требует кэш PSR-16.Я нашел следующий способ заставить это работать:

class_alias('\Predis\Client', '\Redis'); // rename \Predis\Client to \Redis

$client = Redis::connection('default');
$pool = new \Cache\Adapter\Redis\RedisCachePool($client->client());
$simpleCache = new \Cache\Bridge\SimpleCache\SimpleCacheBridge($pool);
$psr16_cache = new SimpleCacheTokenPersistence($simpleCache);

Как вы можете видеть ... первая строка очень хакерская!Имя класса, которое будет принято RedisCachePool, который будет принимать только объект \ Redis.

Независимо от того, что я пробовал, я не могу заставить Laravel предоставить объект Redis, даже если Predis \ Client идентичен.

Кроме хака, я бы выбрал другой вариант: разветвить пакет php-cache / redis-adapter, но, опять же, он не идеален.

Кто-нибудь может предложить какие-нибудь обходные пути?

1 Ответ

0 голосов
/ 07 октября 2018

Вы должны использовать predis-adapter вместо redis-adapter

composer require cache/predis-adapter

Github: https://github.com/php-cache/predis-adapter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...