Actualización

This commit is contained in:
Xes
2025-04-10 12:24:57 +02:00
parent 8969cc929d
commit 45420b6f0d
39760 changed files with 4303286 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
<?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;
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace Doctrine\DBAL\Logging;
use Doctrine\Deprecations\Deprecation;
use function var_dump;
use const PHP_EOL;
/**
* A SQL logger that logs to the standard output using echo/var_dump.
*
* @deprecated
*/
class EchoSQLLogger implements SQLLogger
{
public function __construct()
{
Deprecation::trigger(
'doctrine/dbal',
'https://github.com/doctrine/dbal/pull/3935',
'EchoSQLLogger is deprecated without replacement, move the code into your project if you rely on it.'
);
}
/**
* {@inheritdoc}
*/
public function startQuery($sql, ?array $params = null, ?array $types = null)
{
echo $sql . PHP_EOL;
if ($params) {
var_dump($params);
}
if (! $types) {
return;
}
var_dump($types);
}
/**
* {@inheritdoc}
*/
public function stopQuery()
{
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace Doctrine\DBAL\Logging;
use Doctrine\Deprecations\Deprecation;
/**
* Chains multiple SQLLogger.
*/
class LoggerChain implements SQLLogger
{
/** @var SQLLogger[] */
private $loggers = [];
/**
* @param SQLLogger[] $loggers
*/
public function __construct(array $loggers = [])
{
$this->loggers = $loggers;
}
/**
* Adds a logger in the chain.
*
* @deprecated Inject list of loggers via constructor instead
*
* @return void
*/
public function addLogger(SQLLogger $logger)
{
Deprecation::trigger(
'doctrine/dbal',
'https://github.com/doctrine/dbal/pull/3572',
'LoggerChain::addLogger() is deprecated, use LoggerChain constructor instead.'
);
$this->loggers[] = $logger;
}
/**
* {@inheritdoc}
*/
public function startQuery($sql, ?array $params = null, ?array $types = null)
{
foreach ($this->loggers as $logger) {
$logger->startQuery($sql, $params, $types);
}
}
/**
* {@inheritdoc}
*/
public function stopQuery()
{
foreach ($this->loggers as $logger) {
$logger->stopQuery();
}
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace Doctrine\DBAL\Logging;
use Doctrine\DBAL\Types\Type;
/**
* Interface for SQL loggers.
*/
interface SQLLogger
{
/**
* Logs a SQL statement somewhere.
*
* @param string $sql SQL statement
* @param array<int, mixed>|array<string, mixed>|null $params Statement parameters
* @param array<int, Type|int|string|null>|array<string, Type|int|string|null>|null $types Parameter types
*
* @return void
*/
public function startQuery($sql, ?array $params = null, ?array $types = null);
/**
* Marks the last started query as stopped. This can be used for timing of queries.
*
* @return void
*/
public function stopQuery();
}