Frage

Ich möchte etwas tiefer in Smarty-Caching gehen, so dass ich ein paar einfache Fragen ...

  1. Cache ungültig manipulieren ich möchte wissen, was Verzeichnis Smarty es den Cache in speichert. Zum Beispiel werden alle zwischengespeicherten Seiten in Bezug auf user_id=123 ich speichern möchten bei cache/users/123/. Wo cache ist Smarty Caching Richt. Wie kann ich bei user_id=123 sagen Smarty Cache Speicher cache/users/123/ verwandt? Will Smarty Speicher-Cache-Hilfsschablonen in diesem Verzeichnis auch?

  2. Gibt es irgendwelche Empfehlungen über Cache in diesem Verzeichnis Reinigung? Ich denke, dass das einfache Entfernen von Dateien aus diesem Verzeichnis einige Fehler verursachen können, wenn einige Besucher zur Zeit sind diese Seiten (Fehler besuchen können occure wenn Smarty, dass Template-Cache zu sehen ist gefunden, aber Unter Template-Cache wird nicht gefunden, weil sie bereits entfernt wurde, zum Beispiel).

Alle Empfehlungen und Ratschläge geschätzt werden.

Danke.

War es hilfreich?

Lösung

Werfen Sie einen Blick auf die Smarty docs: die „ Cache-Gruppen “Abschnitt. Tut genau das.

Andere Tipps

Sie sollten nicht Cache löschen manuell. Verwenden clear_cache () und clear_compiled_tpl () dafür. Sie können alle Cache löschen und tun auch selektiven Clearing mit ihnen.

Verwenden Sie die Smarty cachedir wechseln, je nachdem, wo Sie wollen, ist (man kann, dass der Check mit einigen eigenen if-Anweisungen)

// Create smarty object
$smarty = new Smarty();

// Change smarty-dir is like this:
if (isset($_GET['userId'])) {
    $smarty->compile_dir = '/path/to/dir/' . $_GET['userId'];
} else {
    $smarty->compile_dir = '/path/to/dir/default';
}

Punkt zwei ist ein wenig schwieriger, müssen Sie durch alle mapps foreach, und weisen Sie das neue Kompilierung dir, und dann den folgenden Befehl ausführen:

$smarty->clear_cache();

Aber wie Sie gesagt haben, dann ist es möglich, die Datei angefordert wird, während ein Entfernen ist. : - (


Aber es wird empfohlen, nicht unterschiedlichen Cache-Ordner zu verwenden, wird Smarty die Ausgabe nicht cachen, nur die kompilierte PHP-Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top