您应该使redis缓存一个服务,并在稍后将其注入控制器(或其他从属对象)。参考symfony的
dependency injection docs
如果需要的话。
下面是一个例子,稍后您可能需要对其进行微调:
# 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;
}
参考
service container documentation
如果你有任何问题。