Определяет контракт для классов, управляющих различными аспектами кэш-контроля, такими как загрузка конфигурации, миграция или работа с файлами конфигурации.
Может быть дополнен реализацией в наследниках для поддержки специфичных стратегий кэширования.
Работает по следующему алгоритму: - Если передан строковый тип и значение "all", очищается вся директория кеша. - Если передан массив типов, очистка выполняется рекурсивно для каждого типа. - В случае конкретного типа, очищается соответствующий подкаталог.
Исключение может быть выброшено, если возникают ошибки при работе с JSON-библиотекой (например, при вызовах методов, зависящих от внутренних реализаций).
Инициализирует путь к кешу, если он не был установлен ранее. Данные извлекаются из файла с учетом типа и имени, которые преобразуются в транслит. Если файл отсутствует или недоступен, функция возвращает false. Если данные присутствуют, они декодируются из формата JSON и в случае ошибки выбрасывается исключение JsonException.
Функция получает конфигурацию с помощью DataManager::getConfig(), определяет путь для хранения кэша (приоритет отдается переданному аргументу $path, затем значению из конфигурации, в последнюю очередь используется стандартный путь), нормализует его и устанавливает через self::setPath().
Функция выполняет следующие действия: - Преобразует имя и тип кэша в транслитерацию для формирования имени файла и пути директории. - Проверяет и создает директорию, если она отсутствует. - Сериализует переданные данные в JSON и записывает их в файл. - Логирует возможные ошибки сериализации и записи данных.