Example #1
0
 /**
  * Конструктор класса для работы с кешем.
  * Кеширование идёт в два этапа:
  * 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();
 }