Блог Андрея

 
 

Конфигурируем memcached в Symfony по новому

Если вы видите ошибку

Using the "memcached" type for cache "cache_driver" is deprecated since DoctrineBundle 1.12 and will be dropped in 2.0. Please use the "service" or "pool" types exclusively.

, значит вам надо сконфигурировать result_cache_driver с типом 'service'. Вам надо изменить конфигурацию.

Тут приведен пример из живого проекта.

Например раньше у вас было в файле config/packages/doctrine.yaml:

result_cache_driver:
            type: memcached
            host: localhost
            port: 11211
            instance_class: Memcached

теперь у вас будет:

result_cache_driver:
            type: 'service'
            id: doctrine.cache.memcached

А чтобы это заработало, вам надо в файле config/services.yaml:

в секции parameters

memcached.servers:
    - memcached://localhost:11211
  memcached.config: {distribution: 'consistent', compression: true}

в секции services

memcached.doctrine:
      class: Memcached
      factory: Symfony\Component\Cache\Adapter\MemcachedAdapter::createConnection
      arguments: ['%memcached.servers%', '%memcached.config%']

    doctrine.cache.memcached:
      class: Doctrine\Common\Cache\MemcachedCache
      calls:
        - [ setMemcached, [ '@memcached.doctrine' ] ]

Всё выше описанное актуально и для секций second_level_cache и query_cache_driver.

Надеюсь, вам это помогло, а тем кто придумал это изменение сейчас плохо.