Вы должны сделать Redis-кеш сервисом, а потом внедрить его в свои контроллеры (или других зависимых). При необходимости обратитесь к документации Symfony для вставки зависимостей .
Вот пример, который вам может понадобиться настроить позже:
# config/services.yaml
services:
redis_connection:
class: 'RedisConnection'
factory: ['RedisAdapter', createConnection]
arguments:
- '%env(REDIS_URL)%'
redis_cache:
class: 'RedisCache'
arguments:
- '@redis_connection'
Обратите внимание, что я не знаю, какие пространства имен имеют ваши классы, поэтому вам придется соответствующим образом изменить конфигурацию.
И тогда вам также потребуется настроить инфраструктуру для внедрения службы вашим контроллерам (или другим иждивенцам):
# config/services.yaml
services:
# ...
App\Controller\ExampleController:
arguments:
- '@logger'
- '@redis_cache'
Кроме того, вы должны обновить контроллеры так, чтобы они принимали новый аргумент в конструкторе, например:
public function __construct(LoggerInterface $logger, RedisCache $cache)
{
$this->logger = $logger;
$this->cache = $cache;
}
Если у вас есть какие-либо вопросы, обратитесь к документации контейнера службы .