キャッシュ
基本的に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の時と同じヘッダを出力