Вопрос

Я хотел бы немного глубже в Smarty Caching, поэтому у меня есть несколько простых вопросов ...

  1. Чтобы манипулировать недействительством кэша, я хочу знать, какой каталог Smarty хранит свой кеш в. Например, все кэшированные страницы, связанные с user_id=123 Я хочу хранить в cache/users/123/. Отказ Где cache Является ли Smarty Caching Dir. Как я могу сказать Smarty для хранения кэша, связанного с user_id=123 в cache/users/123/? Будет ли Smarty Store Cache из Sub-шаблонов в этом каталоге также?

  2. Есть ли рекомендации по поводу чистки кеша в этом каталоге? Я думаю, что просто удаление файлов из этого каталога может привести к некоторым ошибкам, если некоторые посетители в настоящее время посещают эту страницы (ошибка может произойти, когда Smarty увидит, что кэш шаблона найден, но кэш-память шаблона не найден, потому что он уже был удален, Например).

Любые рекомендации и советы ценятся.

Спасибо.

Это было полезно?

Решение

Посмотрите на Smarty Docs: "Группы кэша«Раздел. Делает именно это.

Другие советы

Вам следует НЕТ Очистить кеш вручную. Используйте clear_cache () и clear_compiled_tpl () для этого. Вы можете очистить все кеш, а также сделать селективную очистку с ними.

Использование может переключать Smarty Cachedir, в зависимости от того, где вы хотите (вы можете проверить, что с некоторыми собственными заявлениями)

// 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';
}

Точка вторая немного сложнее, вы должны нарисовать все MAPPS, а также назначить новую компиляцию DIR, а затем выполнить следующую команду:

$smarty->clear_cache();

Но, как вы сказали, это возможно, файл запрашивается, пока есть удаление. :-(


Но не рекомендуется использовать разные папки кэша, Smarty не входит в систему вывода, просто компилированный PHP-файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top