Ejemplo n.º 1
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;
     }
 }