Files
2021-09-13 06:53:04 -04:00

78 lines
1.5 KiB
PHP

<?php
/**
* This file is part of the CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CodeIgniter\Debug\Toolbar\Collectors;
use Config\Services;
/**
* Timers collector
*/
class Timers extends BaseCollector
{
/**
* Whether this collector has data that can
* be displayed in the Timeline.
*
* @var boolean
*/
protected $hasTimeline = true;
/**
* Whether this collector needs to display
* content in a tab or not.
*
* @var boolean
*/
protected $hasTabContent = false;
/**
* The 'title' of this Collector.
* Used to name things in the toolbar HTML.
*
* @var string
*/
protected $title = 'Timers';
//--------------------------------------------------------------------
/**
* Child classes should implement this to return the timeline data
* formatted for correct usage.
*
* @return array
*/
protected function formatTimelineData(): array
{
$data = [];
$benchmark = Services::timer(true);
$rows = $benchmark->getTimers(6);
foreach ($rows as $name => $info)
{
if ($name === 'total_execution')
{
continue;
}
$data[] = [
'name' => ucwords(str_replace('_', ' ', $name)),
'component' => 'Timer',
'start' => $info['start'],
'duration' => $info['end'] - $info['start'],
];
}
return $data;
}
}