Абстрактный класс для реализации управления кэшированием.
Описание:
Определяет контракт для классов, управляющих различными аспектами кэш-контроля, такими как загрузка конфигурации, миграция или работа с файлами конфигурации.
Может быть дополнен реализацией в наследниках для поддержки специфичных стратегий кэширования.
static public clearCache(string|array type = "all") : void
Краткое содержание
Очищает кеш для указанного типа или списка типов.
Описание
Работает по следующему алгоритму: - Если передан строковый тип и значение "all", очищается вся директория кеша. - Если передан массив типов, очистка выполняется рекурсивно для каждого типа. - В случае конкретного типа, очищается соответствующий подкаталог.
Исключение может быть выброшено, если возникают ошибки при работе с JSON-библиотекой (например, при вызовах методов, зависящих от внутренних реализаций).
static public getCache(string type, string name) : false|array|int
Краткое содержание
Получает данные из кеша, преобразуя имена и типы в транслит и извлекая содержимое файла с последующим декодированием данных из JSON.
Описание
Инициализирует путь к кешу, если он не был установлен ранее. Данные извлекаются из файла с учетом типа и имени, которые преобразуются в транслит. Если файл отсутствует или недоступен, функция возвращает false. Если данные присутствуют, они декодируются из формата JSON и в случае ошибки выбрасывается исключение JsonException.
static public init(string|null path = null) : void
Краткое содержание
Инициализирует систему, устанавливая путь для кэша.
Описание
Функция получает конфигурацию с помощью DataManager::getConfig(), определяет путь для хранения кэша (приоритет отдается переданному аргументу $path, затем значению из конфигурации, в последнюю очередь используется стандартный путь), нормализует его и устанавливает через self::setPath().
static public setCache(string type, string name, mixed data) : void
Краткое содержание
Сохраняет данные в кэше путем создания файла с содержимым в JSON-формате.
Описание
Функция выполняет следующие действия: - Преобразует имя и тип кэша в транслитерацию для формирования имени файла и пути директории. - Проверяет и создает директорию, если она отсутствует. - Сериализует переданные данные в JSON и записывает их в файл. - Логирует возможные ошибки сериализации и записи данных.