Когда оптимизируешь сайт, понимаешь, что некоторые блоки обновляются очень-очень редко и хотелось бы такие блоки сгенерировать один раз, потом закешировать и так, чтобы даже при обновлении сайта их кеш не сбрасывался.
В статье
Оптимизация сайта на MODX Revolution - уменьшение времени загрузки страницы есть сниппет
chunk, который помогает закешировать блоки с первого отображения и вплоть до внесения изменений на сайт.
Сниппет
longCache действует анологично, только создает кеш блока, который не очищается при каждом обновлении информации на сайте.
Вызываем его так:
[[longCache? &name=`foreignMap`]]
Код самого сниппета:
<?php
if (!$output = $modx->cacheManager->get($name, ['cache_key' => 'chunks'])) {
$output = $modx->getChunk($name, $scriptProperties);
$maxIterations = (integer) $modx->getOption('parser_max_iterations', null, 10);
$modx->getParser()->processElementTags('', $output, false, false, '', [], $maxIterations);
$modx->getParser()->processElementTags('', $output, true, true, '', [], $maxIterations);
$modx->cacheManager->set($name, $output, 0, ['cache_key' => 'chunks']);
}
return $output;
Этот сниппет я использовал, чтобы закешировать карту на сайте http://reabilitaciya-narcozavisimyh.ru/ (
статья о сайте)
а вот по этому поводы ты вроде говорил что это лишнее)))
так нельзя?)
$cacheKey — здесь это имя папки внутри cache, в которую и будут складываться файлики кеша. У меня внутри /core/cache/ есть папка /chunks/, где и лежит кеш таких чанков (каждый чанк в отдельном файле).