📦 Класс Cache
Простая обёртка над modx()->cacheManager для удобной работы с кэшем в MODX. Поддерживает хранение, извлечение, очистку, удаление кэша, а также работу по паттерну remember().
🔹 Cache::get(string $key, array $options = []): mixed
Получить значение из кэша по ключу.
Пример:
php
$data = Cache::get('my_key');🔹 Cache::set(string $key, $value, int $ttl = 3600, array $options = []): bool
Установить значение в кэш.
$ttl— время жизни в секундах (0— навсегда).
Пример:
php
Cache::set('my_key', ['foo' => 'bar'], 600);🔹 Cache::add(string $key, $value, int $ttl = 3600, array $options = []): bool
Добавить значение в кэш только если ключ ещё не существует.
Пример:
php
Cache::add('unique_key', 'value');🔹 Cache::replace(string $key, $value, int $ttl = 3600, array $options = []): bool
Заменить значение в кэше только если ключ уже существует.
Пример:
php
Cache::replace('existing_key', 'new_value');🔹 Cache::delete(string $key, array $options = []): bool
Удалить запись из кэша по ключу.
Пример:
php
Cache::delete('temp_key');🔹 Cache::clear(string $cacheKey = 'pageblocks'): bool
Полностью очистить кэш: логически и физически (файлы).
Пример:
php
Cache::clear(); // удалит все из core/cache/pageblocks и очистит по ключу🔹 Cache::remember(string $key, int $ttl, callable $callback, array $options = [], bool &$fromCache = false): mixed
Получить значение из кэша или сгенерировать его, если отсутствует.
Пример:
php
$user = Cache::remember('user_42', 3600, function () {
return getUserFromDB(42);
}, [], $wasCached);
if ($wasCached) {
echo 'Получено из кэша';
}🔹 Cache::rememberForever(string $key, callable $callback, array $options = []): mixed
То же самое, что remember, но без времени истечения (хранится навсегда).
Пример:
php
$config = Cache::rememberForever('site_config', function () {
return loadConfig();
});🔹 Cache::generateObject(string $class, array $data): \xPDOObject
Создаёт и возвращает объект MODX из массива данных.
Пример:
php
$object = Cache::generateObject(modResource::class, ['pagetitle' => 'Home']);