We did it in the filter.
A bit hacky, but here's an example of doing redirects in a filter ... you have to do a cache check yourself ...
class invalidateCacheFilter extends sfFilter { public function execute($filterChain) { $redirect=true; if($redirect===true) { $request = $this->getContext()->getRequest(); header("location: ".$request->getUri()); exit(); } $filterChain->execute(); } }
source share