/** * Конструктор класса для работы с кешем. * Кеширование идёт в два этапа: * 1. Кеширование на уровне класса для максимально быстрого доступа * 2. Кеширование в долгосрочном хранилище, которое реализуется отдельным классом - "движком" кеширования * * Движок кеширования должен быть задан на уровне config.ini * * @return PSCache */ protected function __construct() { $this->LOGGER = PsLogger::inst(__CLASS__); /* * Получим название класса "движка" кеширования */ $class = ConfigIni::cacheEngine(); /* * Проверим наличие класса */ $classPath = Autoload::inst()->getClassPath($class); if (!PsCheck::isNotEmptyString($classPath)) { return PsUtil::raise('Не удалось найти класс для кеширования [{}]', $class); } /* * Правильный ли класс указан? */ if (!PsUtil::isInstanceOf($class, 'PSCacheEngine')) { return PsUtil::raise('Указанный класс кеширования [{}] не является наследником класса [{}]', $class, 'PSCacheEngine'); } $this->LOGGER->info('Используем движок кеширования: {}', $class); $this->CACHE_ENGINE = new $class(); }