/** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Exception $exception = null) { $queryCount = 0; $queryTime = 0; $dataSources = array(); foreach ($this->dataProfilerManager as $profiler) { $queryCount += $profiler->count(); $queryTime += $profiler->getTotalElapsedSecs(); $name = $profiler->getDataSourceName(); $dataSources[$name] = array("queryTime" => $profiler->getTotalElapsedSecs(), "queryCount" => $profiler->count(), "profiles" => array()); foreach ($profiler as $profile) { $dataSources[$name]["profiles"][] = array("queryTime" => $profile->hasEnded() ? $profile->getElapsedSecs() : false, "queryText" => $profiler->getFormatter()->formatHtml($profile->getQueryText()), "params" => $this->formatQueryParams($profile->getQueryParams()), "startTime" => $profile->getStartMicrotime() - $this->kernel->getStartTime(), "endTime" => $profile->hasEnded() ? $profile->getEndMicrotime() - $this->kernel->getStartTime() : false, "startMemoryUsage" => $profile->getStartMemoryUsage(true), "endMemoryUsage" => $profile->hasEnded() ? $profile->getEndMemoryUsage(true) : false, "startPeakMemoryUsage" => $profile->getStartPeakMemoryUsage(true), "endPeakMemoryUsage" => $profile->hasEnded() ? $profile->getEndPeakMemoryUsage(true) : false); } } $this->data["queryCount"] = $queryCount; $this->data["queryTime"] = $queryTime; $this->data["dataSources"] = $dataSources; }
/** * {@inheritdoc} */ public function getStartTime() { return $this->kernel->getStartTime(); }
/** * @param LoggerInterface $logger * @param QueryExecution $queryExecution * @param KernelInterface $kernel */ public function __construct(LoggerInterface $logger, QueryExecution $queryExecution, KernelInterface $kernel) { $this->logger = $logger; $this->queryExecution = $queryExecution; $this->startTime = $kernel->getStartTime(); }