如何解决Symfony 4.4 metadata_cache_driver配置密钥弃用通知
自从我将Symfony从4.4.15升级到4.4.16之后,我收到了以下弃用通知:
“ metadata_cache_driver”配置密钥已弃用。 PHP数组 现在,当%kernel.debug%为false时,缓存将自动注册。
这很奇怪,因为official docs除了下面的文字外,没有对这种弃用说任何话:
自版本4.4起弃用:所有Doctrine缓存类型均为 自Symfony 4.4起不推荐使用,在Symfony 5.0和更高版本中将不可用 更高。将它们替换为以下类型:service或类型:pool and use 使用Symfony缓存定义的任何缓存池/服务。
但是我正在使用缓存类型的池或服务。我的配置如下:
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
配置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。