1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/**
* Class that represents profiler output in HTML format
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Profiler\Driver\Standard\Output;
use Magento\Framework\Profiler;
use Magento\Framework\Profiler\Driver\Standard\AbstractOutput;
use Magento\Framework\Profiler\Driver\Standard\Stat;
class Html extends AbstractOutput
{
/**
* Display profiling results
*
* @param Stat $stat
* @return void
*/
public function display(Stat $stat)
{
$out = [];
$out[] = '<table border="1" cellspacing="0" cellpadding="2">';
$out[] = '<caption>' . $this->_renderCaption() . '</caption>';
$out[] = '<tr>';
foreach (array_keys($this->_columns) as $columnLabel) {
$out[] = '<th>' . $columnLabel . '</th>';
}
$out[] = '</tr>';
foreach ($this->_getTimerIds($stat) as $timerId) {
$out[] = '<tr>';
foreach ($this->_columns as $column) {
$out[] = '<td title="' . $timerId . '">' . $this->_renderColumnValue(
$stat->fetch($timerId, $column),
$column
) . '</td>';
}
$out[] = '</tr>';
}
$out[] = '</table>';
$out[] = '';
$out = implode("\n", $out);
echo $out;
}
/**
* Render timer id column value
*
* @param string $timerId
* @return string
*/
protected function _renderTimerId($timerId)
{
$nestingSep = preg_quote(Profiler::NESTING_SEPARATOR, '/');
return preg_replace('/.+?' . $nestingSep . '/', '· ', $timerId);
}
}