首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注入特定的缓存池?

如何注入特定的缓存池?
EN

Stack Overflow用户
提问于 2021-05-26 11:20:41
回答 1查看 1.4K关注 0票数 1

在我的Symfony 5应用程序中,我想对不同的任务使用不同的缓存,当然,对于不同的环境也使用不同的缓存。

我的配置如下所示:

代码语言:javascript
复制
framework:
    cache:
        pools:
            cache.auth:
                adapter: cache.adapter.redis
                provider: app.my_custom_redis_provider
            cache.sap:
                adapter: cache.adapter.redis
                provider: app.my_custom_redis_provider
services:
    app.my_custom_redis_provider:
        arguments:
            - '%env(REDIS_URL)%'
            -
                retry_interval: 2
                timeout: '%env(REDIS_TIMEOUT)%'
        class: Redis
        factory:
            - Symfony\Component\Cache\Adapter\RedisAdapter
            - createConnection

我在类中使用依赖注入。那么,我将如何定义特定类使用这两个缓存池中的哪个?

现在我像这样得到了我的缓存:

代码语言:javascript
复制
class SapListService implements ListServiceInterface
{
    use LoggerTrait;

    private CountryServiceInterface $countryService;
    private CurrencyServiceInterface $currencyService;

    public function __construct(
        SapClientFactoryInterface $sapClient,
        CacheItemPoolInterface $cache,
        ParameterBagInterface $params
    ) {
        $sapUser = $params->get('sap_user');
        $sapPw = $params->get('sap_pw');
        $urlStruktur = $params->get('sap_struktur');
        $this->countryService = $sapClient->getCountryService($sapUser, $sapPw, $urlStruktur, $cache);
        $this->currencyService = $sapClient->getCurrencyService($sapUser, $sapPw, $urlStruktur, $cache);
    } 

如何配置我的SapListService以使用cache.sap池?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 11:52:01

这在文档上得到了解释。

每个自定义池成为一个服务,其服务ID是池的名称(例如,custom_thing.cache)。还使用camel名称的camel版本为每个池创建了一个自动连接别名--例如,可以通过命名参数custom_thing.cache并键入--使用Symfony\Contracts\Cache\CacheInterface或Psr\Cache\CacheItemPoolInterface来自动注入它:

所以在你的情况下,你可以输入提示:

代码语言:javascript
复制
Psr\Cache\CacheItemPoolInterface $cacheSap
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67703845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档