キャッシュ

基本的にauだけno-cacheにする感じ
session使ってない場合も考慮して、filterでやる。

lib/mobileFilter.class.php

<?php
class mobileFilter extends sfFilter
{
  public function execute($filterChain)
  {
    if ($this->isFirstCall()) {
      $cache_limiter = getCacheLimiter(); // auはnocache,それ以外はnone
      ini_set('session.cache_limiter', $cache_limiter);
      if ($cache_limiter == 'nocache') {
        $context  = $this->getContext();
        $response = $context->getResponse();
        $response->setHttpHeader('Expires', 'Thu, 19 Nov 1981 08:52:00 GMT');
        $response->setHttpHeader('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
        $response->setHttpHeader('Pragma', 'no-cache');
      }
    }
    // execute next filter
    $filterChain->execute();
  }
}

として

apps/myapp/config/filters.yml
の先頭に以下を追加

mobile:
  class: mobileFilter

...
rendering: ~

session使ってる場合はsession.cache_limiterだけでOK
使ってない時のために、session.cache_limiter=nocacheの時と同じヘッダを出力