当我执行命令php bin/console doctrine:ensure-production-settings
我有这个结果
query Cache uses a non-persistent cache driver, DoctrineCommonCacheArrayCache.
有人可以解释这是什么结果,我该怎么办?
这仅表示您没有为学说查询设置的持久缓存。学说使用缓存将DQL查询转换为SQL,因此在生产环境中,可以缓存此问题,而不必每次都进行相同的工作。
请参阅此处:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html#query-cache
引发异常的功能在这里:https://github.com/doctrine/doctrine2/blob/2.5/lib/doctrine/orm/configuration.php#l374
和代码看起来像这样:
if ($queryCacheImpl instanceof ArrayCache) {
throw ORMException::queryCacheUsesNonPersistentCache($queryCacheImpl);
}
您应该做的是在生产环境上实现一种缓存机制,无论是APC,Memcache,Redis等
在Symfony 3.4(sample)
中- 安装PHP-APCU扩展
config_prod.yml上的不点击行
学说:
orm: metadata_cache_driver: apc result_cache_driver: apc query_cache_driver: apc
并没有错误