减少symfony2数据库请求


Reduce symfony2 database requests

我正在使用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中useQueryCacheuseResultCache的用法是相同的。和Symfony2.x。

有关Symfony2 Doctrine配置的更大文档,请查看@Francesco Casula提到的链接