首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2缓存过期

Symfony2缓存过期
EN

Stack Overflow用户
提问于 2014-03-25 14:08:26
回答 1查看 853关注 0票数 0

我的控制器中有以下操作:

代码语言:javascript
复制
public function popularPlacesAction()
{
    $em = $this->getDoctrine()->getManager();

    $query = $em->createQuery(
        "SELECT COUNT(s.id) as total, l.city as name, l.country_code as country_code
          FROM AcmeMyBundle:Sample s 
          LEFT JOIN s.location l 
          WHERE l.city != ''
          GROUP BY name
          ORDER BY total DESC"
    )->setMaxResults(15);

    $cities = $query->getResult();

    return array(
        'cities' => $cities
    );
}

我想使用缓存来设置响应的过期日期,如果查询的结果发生了变化,这并不重要。我只想将响应设置为public,并以每小时刷新响应为例。当响应来自缓存时,如何在不执行原则查询的情况下完成这一任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 16:10:30

您需要使用一些缓存方法(可能是Varnish或symfony的反向代理),然后为您的动作响应设置一些缓存头。看看这里:缓存控制标头过期。的前任:

代码语言:javascript
复制
public function popularPlacesAction()
{
    ... 
    $response = new Response();
    $response->setSharedMaxAge(3600);
    $response->setContent(....);
    return $response;
}

希望这能有所帮助。其他要阅读的文档:HTTP缓存

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22637062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档