Основное использование
Последнее обновление Jan 27th, 2020 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn moreДанная страница предназначена для демонстрации некоторых основных принципов работы с менеджером кэша xPDO/MODX и того, как его можно использовать для написания более эффективных сниппетов.
Создадим наши сниппеты¶
Сниппет №1: запись в кэш¶
Вот наш первый сниппет с названием cacheWrite:
$cacheManager = $modx->getCacheManager();
$x = date('H:i:s');
$cacheManager->set('my_cache_key',$x);
return $x;
Помните, что нам нужно использовать переменную $x
в качестве посредника, поскольку cacheManager
опирается на ссылочные переменные. Вы не можете просто передать ему статическое значение.
Этот сниппет кода просто сохраняет текущую временную метку в кэше с именем ключа «my_cache_key». Поместите этот сниппет (КЭШИРУЕМЫЙ) на страницу вашего сайта, например, на странице с названием «Страница 1»:
[[writeCache]]
Сниппет №2: чтение из кэша¶
Далее мы создадим простой сниппет с названием readCache, который будет читать значения из кэша:
$cacheManager = $modx->getCacheManager();
return $cacheManager->get('my_cache_key');
И поместите этот сниппет (НЕКЭШИРУЕМЫЙ) на другую страницу вашего сайта, например, на странице с названием «Страница 2»:
[[!readCache]]
Посмотрим на наши сниппеты¶
- Сначала перейдите к «Страница 1» (или просто просмотрите эту страницу на своем сайте). Вы должны увидеть обычную временную метку, например, «11:44:55».
- Затем перейдите к «Страница 2» на вашем сайте в отдельной вкладке браузера. Вы должны увидеть ту же метку времени, например, «11:44:55». Даже если вы подождете 5 минут, отметка времени не должна измениться.
Очистите кэш сайта (Сайт / -> Очистить кэш), а затем повторите этот процесс. Что вы видите?
Вы должны заметить, что отметка времени устанавливается только при первом посещении «Страница 1».
Попробуйте следующее:
- Очистите кэш сайта
- Посетите «Страница 2». Что происходит?
Вы должны заметить, что «Страница 2» и сниппет readCache
ничего не возвращают, когда кэш пуст, поскольку сниппет writeCache
ещё ничего не записал в кэш.
Далее попробуйте следующее:
Отредактируйте «Страница 1», чтобы она вызывала некэшируемый сниппет writeCache
[[!writeCache]]
- Посетите «Страница 1» в браузере. Обратите внимание на отметку времени.
- Обновите «Страница 1». Обратите внимание, что отметка времени обновляется.
- Зайдите на «Страница 2» в браузере. Какую временную метку она показывает?
Вы увидите, что «Страница 2» в этом сценарии всегда будет отображать отметку времени с момента последнего обращения к «Страница 1».
Резюме¶
На данной странице были продемонстрированы некоторые основные принципы работы с кэш-менеджером, но даже с этими базовыми функциями вы можете сделать намного больше с вашими сниппетами. Вы можете записать пользовательские данные в кэш MODX и очистить эти данные при очистке кэша сайта. Это полезно, когда вам нужен какой-то дополнительный контроль над выводом сниппета, и вы не хотите испытывать трудности при создании собственного раздела для кэширования. Кэшированные данные в этих примерах имеют время жизни, аналогичное другим кэшированным данным для ресурсов: они обновляются, когда вы вручную обновляете их в своих сниппетах или когда вы очищаете кэш сайта с помощью меню «Сайт -> Очистить кэш».
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn more