CacheService
Описание: Сервис для работы с кэшем Реализация интерфейса кэширования с использованием PSR-6 Cache. Обеспечивает типобезопасную работу с различными драйверами кэша. Поддерживает все основные операции кэширования: получение, сохранение, удаление, проверка существования и массовые операции.
С версии: 1.0.0
Версия: 1.0.0
Пример:
// Создание с файловым кэшем
$cache = new CacheService(new FilesystemAdapter());
// Сохранение данных
$cache->set('movie_123', $movieData, 3600);
// Получение данных
$data = $cache->get('movie_123');
// Проверка существования
if ($cache->has('movie_123')) {
// Данные есть в кэше
}См. также:
\KinopoiskDev\Contracts\CacheInterface: Интерфейс кэширования\Psr\Cache\CacheItemPoolInterface: PSR-6 интерфейс кэша
__construct()
Описание: Конструктор сервиса кэширования Создает новый экземпляр сервиса кэширования с указанным PSR-6 адаптером кэша.
Параметры:
$cache(CacheItemPoolInterface): PSR-6 кэш адаптер (FilesystemAdapter, RedisAdapter и т.д.)
Пример:
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Cache\Adapter\RedisAdapter;
// Файловый кэш
$cache = new CacheService(new FilesystemAdapter());
// Redis кэш
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$cache = new CacheService(new RedisAdapter($redis));get()
Описание: Получает значение из кэша по ключу
Получает значение из кэша по ключу. Возвращает null, если ключ не найден или произошла ошибка при обращении к кэшу. Автоматически нормализует ключ для соответствия PSR-6.
Параметры:
$key(string): Ключ кэша для получения значения
Возвращает: mixed|null Значение из кэша или null если не найдено
Пример:
$movie = $cache->get('movie_123');
if ($movie !== null) {
// Используем данные из кэша
}set()
Описание: Сохраняет значение в кэш
Сохраняет значение в кэш с указанным временем жизни. Автоматически нормализует ключ и обрабатывает ошибки. Возвращает true при успешном сохранении, false при ошибке.
Параметры:
$key(string): Ключ кэша для сохранения$value(mixed): Значение для сохранения в кэше$ttl(int): Время жизни в секундах (по умолчанию 1 час)
Возвращает: bool True при успешном сохранении, false при ошибке
Пример:
// Сохранение на 1 час
$success = $cache->set('movie_123', $movieData);
// Сохранение на 30 минут
$success = $cache->set('movie_123', $movieData, 1800);delete()
Описание: Удаляет значение из кэша
Удаляет значение из кэша по ключу. Возвращает true при успешном удалении или если ключ не существовал, false при ошибке.
Параметры:
$key(string): Ключ кэша для удаления
Возвращает: bool True при успешном удалении, false при ошибке
Пример:
$deleted = $cache->delete('movie_123');
if ($deleted) {
echo "Ключ удален из кэша";
}has()
Описание: Проверяет наличие ключа в кэше
Проверяет наличие ключа в кэше. Возвращает true, если ключ существует и не истек, false в противном случае.
Параметры:
$key(string): Ключ кэша для проверки
Возвращает: bool True если ключ существует, false если нет или произошла ошибка
Пример:
if ($cache->has('movie_123')) {
// Ключ существует в кэше
$data = $cache->get('movie_123');
} else {
// Ключа нет, загружаем данные
$data = loadMovieFromDatabase(123);
$cache->set('movie_123', $data);
}clear()
Описание: Очищает весь кэш
Очищает весь кэш. Удаляет все сохраненные ключи и значения. Возвращает true при успешной очистке, false при ошибке.
Возвращает: bool True при успешной очистке, false при ошибке
Пример:
$cleared = $cache->clear();
if ($cleared) {
echo "Весь кэш очищен";
}getMultiple()
Описание: Получает множественные значения по ключам
Получает множественные значения по ключам. Возвращает ассоциативный массив найденных ключей и их значений. Ключи, которые не найдены, не включаются в результат.
Параметры:
$keys(array<string>): Массив ключей для получения
Возвращает: array<string, mixed> Ассоциативный массив ключ => значение
Пример:
$keys = ['movie_123', 'movie_456', 'movie_789'];
$movies = $cache->getMultiple($keys);
// Результат: ['movie_123' => $data1, 'movie_456' => $data2]setMultiple()
Описание: Сохраняет множественные значения
Сохраняет множественные значения в кэш. Использует отложенное сохранение для оптимизации производительности. Возвращает true при успешном сохранении всех значений.
Параметры:
$ttl(int): Время жизни в секундах (по умолчанию 1 час)
Возвращает: bool True при успешном сохранении, false при ошибке
Пример:
$movies = [
'movie_123' => $movieData1,
'movie_456' => $movieData2,
'movie_789' => $movieData3
];
$success = $cache->setMultiple($movies, 1800); // 30 минутdeleteMultiple()
Описание: Удаляет несколько ключей из кэша
Параметры:
$keys(array): Массив ключей для удаления
Возвращает: bool True, если все ключи успешно удалены, False при ошибке
normalizeKey()
Описание: Нормализует ключ кэша для соответствия PSR-6 Преобразует ключ кэша в формат, совместимый с PSR-6. Заменяет недопустимые символы на подчеркивания.
Параметры:
$key(string): Исходный ключ кэша
Возвращает: string Нормализованный ключ, совместимый с PSR-6
Пример:
// Внутреннее использование
$normalized = $this->normalizeKey('movie:123:data');
// Результат: 'movie_123_data'