Соединение Redis (в кеше Doctrine) инициализируется для каждой команды - PullRequest
0 голосов
/ 17 марта 2019

У меня есть приложение Symfony 4.1, где я использую Doctrine и хочу настроить кэш Redis для Doctrine.

Вот часть composer.json

"snc/redis-bundle": "^2.1",
"symfony/doctrine-bridge": "^4.1",
"symfony/proxy-manager-bridge": "^4.1",

Вот yml файл конфигурации:

snc_redis:
    clients:
        doctrine_cache:
            type: phpredis
            alias: doctrine_cache
            dsn: '%my_dsn%'
    doctrine:
        metadata_cache:
            client: doctrine_cache
            entity_manager: default

Проблема в том, что в первый раз, когда Symfony пытается сгенерировать кэш для всех DI-контейнеров, он инициализирует соединение Redis. Это означает, например, что когда я запускаю консольную команду any , она пытается подключиться к redis. Пример:

// very first command after git clone and composer install
php bin/console about

Выход:

In PhpredisClientFactory.php line 64:
php_network_getaddresses: getaddrinfo failed: No such host is known.

Я ожидаю, что служба кэширования Redis будет инициализироваться лениво, в противном случае я не могу запустить другие команды сборки в независимой (не имеющей Redis) среде. Может кто-нибудь посоветовать, пожалуйста?

...