умолчанию кэш складывается в папку default. Всё бы хорошо, но при сохранении любого ресурса/чанка/сниппета/... эта папка очищается полностью. Это не годится( Как можно указать другую папку для сохранения?
https://docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/caching
// Массив в данными пользователя $userData = array('user'=>$modx->user->get('username'), ip=>$_SERVER['HTTP_CLIENT_IP'], 'city'=>'Москва'); // Указываем свою папку для хранения пользовательских данных $options = array( xPDO::OPT_CACHE_KEY => 'users_data', ); $userId = $modx->user->get('id'); // Указываем в качестве ключа id текущего пользователя. Время хранения не ограничиваем (указываем 0). $modx->cacheManager->set($userId, $userData, 0, $options); ... // Пробуем получить данные для текущего пользователя. $user = $modx->cacheManager->get($modx->user->get('id'), array(xPDO::OPT_CACHE_KEY=>'users_data')); // Если хранение данных ограничено и время истекло, то метод вернёт null. Поэтому проверяем так if (!$user = $modx->cacheManager->get($modx->user->get('id'), array(xPDO::OPT_CACHE_KEY=>'users_data'))) { /* Формируем заново данные пользователя */ }
Обсуждают сегодня