mirror of
https://github.com/zoe-may/TDoG-Skin.git
synced 2024-11-24 22:02:22 +08:00
63 lines
1.1 KiB
PHP
Executable File
63 lines
1.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Doctrine\DBAL\Logging;
|
|
|
|
use function microtime;
|
|
|
|
/**
|
|
* Includes executed SQLs in a Debug Stack.
|
|
*/
|
|
class DebugStack implements SQLLogger
|
|
{
|
|
/**
|
|
* Executed SQL queries.
|
|
*
|
|
* @var array<int, array<string, mixed>>
|
|
*/
|
|
public $queries = [];
|
|
|
|
/**
|
|
* If Debug Stack is enabled (log queries) or not.
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $enabled = true;
|
|
|
|
/** @var float|null */
|
|
public $start = null;
|
|
|
|
/** @var int */
|
|
public $currentQuery = 0;
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function startQuery($sql, ?array $params = null, ?array $types = null)
|
|
{
|
|
if (! $this->enabled) {
|
|
return;
|
|
}
|
|
|
|
$this->start = microtime(true);
|
|
|
|
$this->queries[++$this->currentQuery] = [
|
|
'sql' => $sql,
|
|
'params' => $params,
|
|
'types' => $types,
|
|
'executionMS' => 0,
|
|
];
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function stopQuery()
|
|
{
|
|
if (! $this->enabled) {
|
|
return;
|
|
}
|
|
|
|
$this->queries[$this->currentQuery]['executionMS'] = microtime(true) - $this->start;
|
|
}
|
|
}
|