Silverstripe “auto” flush cache
thereifixedit:
Wenn man bei einem Silverstripe Projekt häufige Änderungen an verschachtelten Templates hat,
kommt man, soweit ich weiss, nicht umhin
?flush=1 oder ?flush=all
an den Seitenaufruf anzuhängen um die Änderungen sichtbar zu machen.
Weil ich gerade sehr häufig in der Situation bin, also jede Minute, hatte ich gehofft man könnte den Cache irgendwo abschalten.
In der Richtung habe ich aber nichts gefunden.
Es lohnt aber ggf. lokal den Parameter einfach immer zu setzen.
Allzu langsam wird das ganze dadurch auch nicht.
also in der _config.php
if ( strpos( $_SERVER["REQUEST_URI"], 'admin' ) === false ) {
$_GET["flush"] = 1;
}
:D
ziemliche Krücke, aber hilft erstmal weiter.
Gibt es einen eleganteren Weg, den ich auf die Schnelle nicht gefunden habe?
Oder liegt das nur an meinem Template Design dass ich das dauernd brauche? :)
evtl.:
ist aber dann immer ‘all’.
in 2.6. soll es wohl sowas geben:
if (Director::isDev()) SS_Cache::set_cache_lifetime('any', -1, 100);aber bis dahin dann wenigstens so:
Crude but works. I would do this, though, in _config.php:
if (Director::isDev()) {
SSViewer::flush_template_cache();
}
Cheers,
Josh
ps sorry for the English – I don’t speak German!
doesn’t
rather check for a Development Server?
was ment to check for frontend, to not flush the cache in backend. (as it really slows down things there)
afaik this flushes the whole template cache for all pages.
i used flush=1 to clear the cache for the current page, which is much faster.
maybe something like this would be what i had in mind:
if ( Director::isDev() && strpos( $_SERVER["REQUEST_URI"], 'admin' ) === false ) { $_GET["flush"] = 1; }sorry, my english isn’t that great :)
I’m glad to see international readers here, thank you!