Пример #1
0
 /**
  * Подписью кеша служит кол-во ячеек, принадлежащих пользователям.
  */
 private function getCachable($key)
 {
     $sign = $this->getOwnedCellsCnt();
     $DATA = PSCacheGroups::MOSAIC()->getFromCache($this->id, PsUtil::getClassConsts(__CLASS__, 'CACHABLE_'), $sign);
     if (!is_array($DATA)) {
         $DATA = array();
         $ownedCells = $this->BEAN->getOwnedCells($this->id);
         $sign = count($ownedCells);
         //Честно посчитаем подпись по кол-ву ячеек, с которым была построена карта
         $DATA[self::CACHABLE_AREAS] = MosaicImageCellsCompositor::area($ownedCells, $this->cellWidth, $this->cellHeight);
         $DATA[self::CACHABLE_STATISTIC] = $this->BEAN->getStatictic($this->id);
         PSCacheGroups::MOSAIC()->saveToCache($DATA, $this->id, $sign);
     }
     return array_get_value($key, $DATA);
 }
Пример #2
0
 /**
  * Метод строит композицию временной шкалы.
  * Построенная композиция будет автоматически сохранена в кеш.
  * Методы были разделены осознанно, возможно нам нужно будет получить именно композицию.
  * 
  * @return TimeLineItemsComposite
  */
 public final function getTimeLineComposition(ArrayAdapter $params)
 {
     $cacheKey = $this->prepareBuildCompositionParamsAndGetCahceKey($params);
     $this->LOGGER->info('Строим хронологическую шкалу, данные: ' . $cacheKey);
     $this->profilerStart(__FUNCTION__);
     try {
         $composition = $this->buildComposition($params);
         check_condition($composition instanceof TimeLineItemsComposite, 'Некорректно построена хронологическая шкала');
         $this->profilerStop();
         $this->LOGGER->info('Шкала успешно построена');
         PSCacheGroups::TIMELINES()->saveToCache($composition->getTimeLineJson(), $cacheKey);
         $this->LOGGER->info('Шкала сохранена в кеш под ключём: ' . $cacheKey);
         return $composition;
     } catch (Exception $ex) {
         $this->profilerStop(false);
         $this->LOGGER->info('Ошибка построения шкалы: ' . $ex->getMessage());
         throw $ex;
     }
 }
Пример #3
0
 protected function cacheGroup()
 {
     return PSCacheGroups::POPUPS();
 }