Symfony cache in ullright
Warning: do not use the cache with enabled "legacy mobile version". It will mix up desktop and mobile version.
Enabling cache
apps/frontend/config/settings.yml
prod:
.settings:
cache: true
dev:
.settings:
# Set this true for debugging !!!
cache: false
Enable conditional cache filter for ullCms/show
apps/frontend/config/filters.yml
...
i18n:
class: i18nFilter
conditionalCache:
class: conditionalCacheFilter
param:
pages:
- { module: ullCms, action: show }
cache: ~
...
Remove all for an action
Sadly sfCache does not support a method to clear all cached variants of an module/action.
Workaround:
// NOTE: if there is no chache manager, make sure cache is enabled in settings.yml!
if ($cacheManager = sfContext::getInstance()->getViewCacheManager())
{
$cacheDir = $cacheManager->getCache()->getOption('cache_dir');
$cacheKey = $cacheManager->generateCacheKey('ullCms/show');
$path = $cacheDir . $cacheKey;
sfToolkit::clearDirectory($path);
}
Dev info:
http://symfony.com/legacy/doc/gentle-introduction/1_4/en/12-Caching
type = sfFileCache
File / Function Cache:
public static function doSomethingCached($param) {
$cache = new sfFileCache(array('cache_dir' => sfConfig::get('sf_cache_dir').'/function', 'lifetime' => 60*60*24));
$fc = new sfFunctionCache($cache);
return $fc->call(
array('myClass', 'myMethod'),
array($param));
}

