. */ namespace SP\Config; use SP\Storage\File\FileCacheInterface; use SP\Storage\File\FileException; /** * Class ConfigCache * * @package SP\Config */ final class ConfigCache { /** * Cache file name */ const CONFIG_CACHE_FILE = CACHE_PATH . DIRECTORY_SEPARATOR . 'config.cache'; /** * @var FileCacheInterface */ private $fileCache; /** * ConfigCache constructor. * * @param FileCacheInterface $fileCache */ public function __construct(FileCacheInterface $fileCache) { $this->fileCache = $fileCache; } /** * Saves config into the cache file * * @param ConfigData $configData */ public function saveConfigToCache(ConfigData $configData) { try { $this->fileCache->save($configData); logger('Saved config cache'); } catch (FileException $e) { processException($e); } } /** * Loads config from the cache file * * @return ConfigData */ public function loadConfigFromCache() { try { $configData = $this->fileCache->load(); if ($configData instanceof ConfigData) { logger('Loaded config cache'); return $configData; } } catch (FileException $e) { processException($e); } return null; } }