Наверх

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

В разделе «Репосты» расположены чужие статьи, которые мне понравились или показались полезными.

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

Многие разработчики, что делают свою сниппеты, их не кэшируют, теряют скорость сайта, а эти сниппеты могут выполняться за несколько секунд (ну если уж очень крутой), даже если и выполняется и за 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')
Получаем данные для кэша по имени.

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

Источник: daruse.ru/keshirovanie-svoix-snippetov-cherez-xpdo-v-modx-revo


0 комментариев

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX