/** * Метод строит композицию временной шкалы. * Построенная композиция будет автоматически сохранена в кеш. * Методы были разделены осознанно, возможно нам нужно будет получить именно композицию. * * @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; } }