http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

Главная Новости

Кэширование своих сниппетов через XPDO в MODX Revo

Опубликовано: 01.09.2018

Хочу обсудить очень важный момент и до жути простой, который поможет вам ускорить сайт при написании своих сниппетов.

Многие разрботчики, что делают свою сниппеты, их не кэшируют, теряют скорость сайта, а эти сниппеты могут выполняться за несколько секунд (ну если уж очень крутой), даже если и выполняется и за 0.1 секунды, это все равно время.

А теперь представьте, если мы закэшируем его то он будет выполняться за 0.001 секунд.

Поэтому, если наш сниппет выполняется за 3 секунды, а потом вы его кэшируете и он будет срабатывать за 0.001, что приятно.

Покажу вам как легко и просто выполнить кэширование своих сниппетов.

Пример:

Предположим вы в своём сниппете получаете какие то данные (как раз те, что вы можете получать за несколько секунд) и вы их записываете в переменную $output и потом возвращаете.

В XPDO для этого есть "cacheManager", мы воспользуемся его двумя методами "set" и "get".

Вот как кэшировать:

// Если кэш есть, то мы записываем его в $output if (!$output = $modx->cacheManager->get('cacheVarName')) { // Если кэша нет, то мы тут получаем свои данные и записываем их в $output // И затем записываем $output в кэш $modx->cacheManager->set('cacheVarName', $output, 3600); } return $output;

Некоторым для восприятия этот код будет проще.

if ($modx->cacheManager->get('cacheVarName')) { // Если есть кэш $output = $modx->cacheManager->get('cacheVarName'); }else{ // Если кэша нет // Получаем $output $output = 'Наша переменная'; // Запись в кэш $modx->cacheManager->set('cacheVarName', $output, 5); } return $output;

Кратко поясню:

$modx->cacheManager->set('cacheVarName', $output, 3600); cacheVarName - название переменной для кэша; $output - что передаём в кэш; 3600 - время жизни кэша. $modx->cacheManager->get('cacheVarName')

Получаем данные для кэша по имени.

Это лишь краткая и базовая инструкция, более подробно читайте в официальной документации.

Карта
rss