6

在 Symfony4 中,我使用以下配置进行学说 apcu 缓存:

doctrine:
    orm:
        auto_mapping: true
        auto_generate_proxy_classes: false
        metadata_cache_driver: apcu
        query_cache_driver: apcu
        result_cache_driver: apcu

升级到 Symfony5 后出现错误:

为实体管理器“default”中的缓存“metadata_cache”配置的“apc”类型的未知缓存。

将其更改为以下配置时,它可以工作:

doctrine:
    orm:
        auto_mapping: true
        auto_generate_proxy_classes: false
        metadata_cache_driver:
            type: pool
            pool: doctrine.system_cache_pool
        query_cache_driver:
            type: pool
            pool: doctrine.system_cache_pool
        result_cache_driver:
            type: pool
            pool: doctrine.result_cache_pool

但是我现在使用什么样的缓存?我怎样才能将它切换到 apcu?

4

1 回答 1

12

我在 Symfony 4.4.5 中遇到了同样的问题

你应该首先安装Symfony 缓存组件。然后,您应该配置缓存池、服务和学说缓存,如下所示:

doctrine:
    orm:
        auto_generate_proxy_classes: false
        metadata_cache_driver:
            type: service
            id: doctrine.system_cache_provider
        query_cache_driver:
            type: service
            id: doctrine.system_cache_provider
        result_cache_driver:
            type: service
            id: doctrine.result_cache_provider

services:
    doctrine.result_cache_provider:
        class: Symfony\Component\Cache\DoctrineProvider
        public: false
        arguments:
            - '@doctrine.result_cache_pool'
    doctrine.system_cache_provider:
        class: Symfony\Component\Cache\DoctrineProvider
        public: false
        arguments:
            - '@doctrine.system_cache_pool'

framework:
    cache:
        pools:
            doctrine.result_cache_pool:
                adapter: cache.adapter.apcu
            doctrine.system_cache_pool:
                adapter: cache.adapter.apcu

上面的配置取自这里

于 2020-03-26T19:48:46.747 回答