У меня наконец-то получилось, даю решение для тех, кто был бы в таком же деле как и я:
cache.yaml:
framework:
cache:
app: cache.adapter.redis
default_redis_provider: "redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%"
pools:
doctrine.result_cache_pool:
adapter: cache.adapter.redis
doctrine.system_cache_pool:
adapter: cache.adapter.redis
doctrine .yaml:
doctrine:
dbal:
default_connection: default
connections:
default:
dbname: '%env(DATABASE_NAME)%'
user: '%env(DATABASE_USER)%'
password: '%env(DATABASE_PASSWORD)%'
host: '%env(DATABASE_HOST)%'
driver: '%env(DATABASE_DRIVER)%'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
metadata_cache_driver: ~
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool
В репозитории Doctrine я создал эту функцию, которую использую во всех функциях репозитория:
protected function getQueryBuilder(): QueryBuilder
{
return $this->createQueryBuilder('article')
->setCacheMode(Cache::MODE_NORMAL)
->setCacheable(true)
->setLifetime(300);
}
docker -compose.yaml:
version: "3.4"
services:
php:
...
depends_on:
- redis
redis:
image: redis:6.0.1
ports:
- 6379:6379
volumes:
- ./docker/redis/redis.conf:/redis.conf
command: [ "redis-server", "/redis.conf" ]
.env.local:
###> Redis ###
REDIS_HOST=redis
REDIS_PORT=6379
###> Redis ###