Symfony 4.4 metadata_cache_driver 配置密钥弃用通知

Symfony 4.4 metadata_cache_driver configuration key deprecation notice

自从我将 Symfony 从 4.4.15 升级到 4.4.16 后,我收到了以下弃用通知:

The "metadata_cache_driver" configuration key is deprecated. PHP Array cache is now automatically registered when %kernel.debug% is false.

这很奇怪,因为 official docs 除了以下文字外,没有说明任何关于此弃用的信息:

Deprecated since version 4.4:All the Doctrine caching types are deprecated since Symfony 4.4 and won’t be available in Symfony 5.0 and higher. Replace them with either type: service or type: pool and use any of the cache pools/services defined with Symfony Cache.

但我正在使用缓存类型的池或服务。我的配置如下所示:

doctrine:  
    orm:  
        metadata_cache_driver:
            type: pool
            pool: doctrine.system_cache_pool  

framework:
    cache:
        default_memcached_provider: 'memcached://localhost:11211'
        pools:
            doctrine.system_cache_pool:
                adapter: cache.adapter.memcached
                public: false
                default_lifetime: 86400

我什至尝试将缓存配置为这样的服务,这给了我同样的弃用通知:

doctrine:
    orm:    
        metadata_cache_driver:
            type: service
            id: doctrine.system_cache_provider

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

framework:
    cache:
        default_memcached_provider: 'memcached://localhost:11211'
        pools:
            doctrine.system_cache_pool:
                adapter: cache.adapter.memcached
                public: false
                default_lifetime: 86400

关于如何摆脱弃用通知的任何想法?

从 DoctrineBundle 2.2.0 开始,您可以安全地从您的配置中删除 metadata_cache_driver。没有替代品;删掉就行了。

引入此弃用通知的 pull request 给出了一些解释:“需要更改,因为从现在开始定义自己的 metadata_cache_driver 没有用了。”

Doctrine 现在在生产环境中使用 PhpArrayAdapter

实际上已恢复弃用:https://github.com/doctrine/DoctrineBundle/pull/1255

因此请确保在升级到 DoctrineBundle 2.2.1 时保留 metadata_cache_driver 生产环境的配置。

编辑:该功能在 DoctrineBundle 2.3.0 版中再次发布。因此,在使用此版本时,可以安全地为生产环境删除 metadata_cache_driver 配置。