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
配置。
自从我将 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
配置。