* */ /** * Регистрация хука для вывода статистики производительности * * @package application.hooks * @since 1.0 */ class HookStatisticsPerformance extends Hook { /** * Регистрируем хуки */ public function RegisterHook() { $this->AddHook('template_body_end', 'Statistics', __CLASS__, -1000); } /** * Обработка хука перед закрывающим тегом body * * @return string */ public function Statistics() { if (!$this->User_GetIsAdmin()) { return ''; } $oEngine = Engine::getInstance(); /** * Подсчитываем время выполнения */ $iTimeInit = $oEngine->GetTimeInit(); $iTimeFull = round(microtime(true) - $iTimeInit, 3); $this->Viewer_Assign('timeFullPerformance', $iTimeFull, true); /** * Получаем статистику по кешу и БД */ $aStats = $oEngine->getStats(); $aStats['cache']['time'] = round($aStats['cache']['time'], 5); $this->Viewer_Assign('stats', $aStats, true); $this->Viewer_Assign('bIsShowStatsPerformance', Router::GetIsShowStats()); /** * В ответ рендерим шаблон статистики */ return $this->Viewer_Fetch('component@performance.performance'); } }