function printRows($lag, $level) { global $processMap; $tpl = Template::getInstance(); foreach ($lag as $l) { if (($l->total < 500000 || LAG_ONLY && $l->lagTotal < 500000) && !NOFILTER) { continue; } $lagTicks = (int) $tpl->masterHandler->lagCount; $count = (int) (LAG_ONLY ? $l->lagCount : $l->count); if ($count === 0 || LAG_ONLY && $lagTicks === 0) { continue; } openRow($level, $l); printRecord($l); $id = $l->id->id; $h = $tpl->handlerData[$id]; if (!empty($h->children) && ++$processMap[$id] == 1) { if (!NOFILTER) { $children = array_filter($h->children, 'lagFilter'); } else { $children = $h->children; } if (!empty($children)) { $children = array_map(function ($v) { $tpl = Template::getInstance(); $h = $tpl->handlerData[$v->id->id]; $v->children = $h->children; return $v; }, $children); usort($children, 'lagSort'); echo '<div class="children">'; printRows($children, $level + 1); echo '</div>'; } --$processMap[$id]; } closeRow(); } }
echo "</tr>\n"; } echo "</table>"; } /* * Esta es una variable que carga el resultado de la lectura de un JSON. */ $resultadoJSON = file_get_contents('resultado_consulta.json'); /* * Se codifica el JSON como una variable PHP. */ $resultadoJSON = json_decode($resultadoJSON, true); /* * Se imprime en pantalla las filas para comodidad del usuario. */ printRows($resultadoJSON); /* * Las llaves de la consulta jerárquica se guardan en orden en un arreglo. */ $idsLlaves = array('id_modalidad', 'id_sede', 'id_profesional'); /* * Se ingresan los parámetros de Filas del SQL y las respectivas llaves que se establecieron en la consulta. */ $resultadoArray = unificarResultadosPorNiveles($resultadoJSON, $idsLlaves); /* * Se imprime en pantalla en código en JSON. */ echo "<h3>Resultado en JSON:</h3>"; echo '<pre>'; echo json_encode($resultadoArray, JSON_PRETTY_PRINT); echo '</pre>';
function printRows($lag, $level) { global $processMap; $tpl = Template::getInstance(); foreach ($lag as $l) { if ($l->lagTotal < 500000) { // continue; } printRecord($l, $level); $id = $l->id->id; $h = $tpl->handlerData[$id]; if (!empty($h->children) && ++$processMap[$id] == 1) { $children = array_filter($h->children, 'lagFilter'); if (!empty($children)) { $children = array_map(function ($v) { $tpl = Template::getInstance(); $h = $tpl->handlerData[$v->id->id]; $v->children = $h->children; return $v; }, $children); usort($children, 'lagSort'); printRows($children, $level + 1); } --$processMap[$id]; } } }
* @license MIT */ use Starlis\Timings\Json\TimingHandler; use Starlis\Timings\Json\TimingsMaster; use Starlis\Timings\Template; use Starlis\Timings\util; /** * @var TimingsMaster $timingsData */ $timingsData = TimingsMaster::getInstance(); echo '<pre>'; echo "Timings cost: {$cost} - " . $cost * $totalTimings . " - Pct: " . round($cost * $totalTimings / ($timingsData->sampletime * 1000000000 / 100), 2); echo "%</pre>\n"; echo '<h5>Installed Plugins:</h5>' . "\n"; $plugins = $timingsData->plugins; printRows($plugins); /** * @param $depth * @param TimingHandler $l * * @return string */ function openRow($depth, $id) { static $i; $num = $depth % 5; $indents = "<div class='indent depth{$num} full-depth{$depth}'></div>"; echo "<div class='full-timing-row'>{$indents}<div id='{$id}' class='timing-row'><a href='#{$id}'># </a>"; } function closeRow() {