Chciałbym wyczyścić pamięć podręczną aplikacji frontend z działania w mojej aplikacji backendowej.Czyszczenie pamięci podręcznej Symfony dla innej aplikacji
Jak mogę to osiągnąć?
Chciałbym wyczyścić pamięć podręczną aplikacji frontend z działania w mojej aplikacji backendowej.Czyszczenie pamięci podręcznej Symfony dla innej aplikacji
Jak mogę to osiągnąć?
wierzę właściwy sposób to zrobić w symfony 1.2 jest następująca:
sfContext::switchTo('frontend'); //switch to the environment you wish to clear
sfContext::getInstance()->getViewCacheManager()->getCache()->clean(sfCache::ALL);
sfContext::switchTo('backend'); //switch back to the environment you started from
Nie sądzę, że nie ma "czystej" metody wykonania zadania, ponieważ różne aplikacje traktowane są w symfony jako dość oddzielone środowiska. Oczywiście praca może odbywać się w mniej lub bardziej brudny sposób wybrać swoją drogę, aby usunąć plik z pamięci podręcznej/dir, uruchom zadanie Phing clear-cache (CC) etc ...
można po prostu uruchom pamięć podręczną rm -rf/*, ale możesz przerwać żądanie klienta. Prostsze rzeczą może być uruchomić symfony cc poprzez passthru() lub exec()
Działa to dla mnie. Usuwa wszystkie buforowane pliki z danego katalogu:
$cache_dir = sfConfig::get('sf_cache_dir').'/'.$app.'/'.$env.'/';
$cache = new sfFileCache(array('cache_dir' => $cache_dir));
$cache->clean();
Można utworzyć instancję sfTask i uruchomić go tak (w SF 1.2): Kod
$task = new sfCacheClearTask(sfContext::getInstance()->getEventDispatcher(), new sfFormatter());
$arguments = array();
// type can be one of: i18n, routing, template, module, config
$options = array(
'frontend' => 'app',
'routing' => 'type',
'prod' => 'env',
);
$task->run($arguments, $options);
dla wszystkich możliwych argumentów i opcji zobaczyć źródłowym odpowiedniej sfTask ...
Jeśli ktoś chce wyczyścić jeden element pamięci podręcznej (jedna strona):
sfContext::switchTo('frontend');
sfContext::getInstance()->getViewCacheManager()->remove("module/action?¶m1=value1¶m2=value2","THE-DOMAIN-OF-YOUR-FRONTEND-APPLICATION-IF-U-USE-IT-IN-CACHE-KEYS");
sfContext::switchTo('backend');