Как настроить apcu для doctrine в Symfony5 - PullRequest
1 голос
/ 26 марта 2020

В Symfony4 я использовал следующую конфигурацию для doctrine apcu caching:

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

После обновления до Symfony5 я получаю ошибку:

Неизвестный кеш типа «ap c» настроен для кэша «metadata_cache» в менеджере сущностей «default».

При изменении его на следующую конфигурацию он работает:

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?

1 Ответ

3 голосов
/ 26 марта 2020

У меня была такая же проблема в Symfony 4.4.5

Сначала необходимо установить Symfony Cache Component . Затем необходимо настроить пулы кэша, службы и doctrine кэш следующим образом:

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

Указанная выше конфигурация взята из здесь .

...