3

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

“metadata_cache_driver”配置键已弃用。现在,当 %kernel.debug% 为 false 时,会自动注册 PHP 数组缓存。

这很奇怪,因为官方文档除了以下文字外没有提及此弃用:

自 4.4 版起已弃用:所有 Doctrine 缓存类型自 Symfony 4.4 起已弃用,并且在 Symfony 5.0 及更高版本中不可用。将它们替换为 type: service 或 type: pool 并使用任何使用 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

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

4

2 回答 2

3

从 DoctrineBundle 2.2.0 开始,您可以安全地metadata_cache_driver从配置中删除。没有替代品;只是删除它。

引入此弃用通知的拉取请求给出了一些解释:“需要更改,因为从现在开始定义自己的 metadata_cache_driver 将无用。”

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

于 2020-11-10T15:22:30.323 回答
3

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

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

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

于 2020-11-10T20:25:09.407 回答