我正在使用Symfony2.4开发一个网站,该网站在数据库中存储一些"半静态"信息(如地址,电话,社交媒体URL等),以允许客户端通过后端修改该数据。
该网站工作良好,但我认为它应该是某种方式来减少访问数据库检索这些数据为每个请求(因为打印在所有页面)。
是否有办法缓存这些数据?在用户第一次进入站点时将其存储在用户会话中,这是一个好的做法吗?
谢谢。
您应该使用APC为例。假设您已经安装并启用了php-apc
扩展(您可以在phpinfo
中检查它),这就是您所需要做的:
在你的config_prod.yml
(你不希望结果缓存在dev
环境)
doctrine:
orm:
metadata_cache_driver: apc
result_cache_driver: apc
query_cache_driver: apc
,然后在你的查询:
$queryBuilder
(...)
->useQueryCache(true)
->useResultCache(true)
(...)
第一次执行这个查询时,它将从数据库中获取数据。下一次它将从缓存中获取数据。您也可以设置缓存的生存期:example
编辑:以上链接是symfony 1。但是,在symfony 1中useQueryCache
和useResultCache
的用法是相同的。和Symfony2.x。
有关Symfony2 Doctrine配置的更大文档,请查看@Francesco Casula提到的链接