diff options
Diffstat (limited to 'vendor/doctrine/dbal/src/Logging')
-rw-r--r-- | vendor/doctrine/dbal/src/Logging/Connection.php | 69 | ||||
-rw-r--r-- | vendor/doctrine/dbal/src/Logging/Driver.php | 50 | ||||
-rw-r--r-- | vendor/doctrine/dbal/src/Logging/Middleware.php | 21 | ||||
-rw-r--r-- | vendor/doctrine/dbal/src/Logging/Statement.php | 48 |
4 files changed, 188 insertions, 0 deletions
diff --git a/vendor/doctrine/dbal/src/Logging/Connection.php b/vendor/doctrine/dbal/src/Logging/Connection.php new file mode 100644 index 0000000..9c220de --- /dev/null +++ b/vendor/doctrine/dbal/src/Logging/Connection.php | |||
@@ -0,0 +1,69 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Doctrine\DBAL\Logging; | ||
6 | |||
7 | use Doctrine\DBAL\Driver\Connection as ConnectionInterface; | ||
8 | use Doctrine\DBAL\Driver\Middleware\AbstractConnectionMiddleware; | ||
9 | use Doctrine\DBAL\Driver\Result; | ||
10 | use Doctrine\DBAL\Driver\Statement as DriverStatement; | ||
11 | use Psr\Log\LoggerInterface; | ||
12 | |||
13 | final class Connection extends AbstractConnectionMiddleware | ||
14 | { | ||
15 | /** @internal This connection can be only instantiated by its driver. */ | ||
16 | public function __construct(ConnectionInterface $connection, private readonly LoggerInterface $logger) | ||
17 | { | ||
18 | parent::__construct($connection); | ||
19 | } | ||
20 | |||
21 | public function __destruct() | ||
22 | { | ||
23 | $this->logger->info('Disconnecting'); | ||
24 | } | ||
25 | |||
26 | public function prepare(string $sql): DriverStatement | ||
27 | { | ||
28 | return new Statement( | ||
29 | parent::prepare($sql), | ||
30 | $this->logger, | ||
31 | $sql, | ||
32 | ); | ||
33 | } | ||
34 | |||
35 | public function query(string $sql): Result | ||
36 | { | ||
37 | $this->logger->debug('Executing query: {sql}', ['sql' => $sql]); | ||
38 | |||
39 | return parent::query($sql); | ||
40 | } | ||
41 | |||
42 | public function exec(string $sql): int|string | ||
43 | { | ||
44 | $this->logger->debug('Executing statement: {sql}', ['sql' => $sql]); | ||
45 | |||
46 | return parent::exec($sql); | ||
47 | } | ||
48 | |||
49 | public function beginTransaction(): void | ||
50 | { | ||
51 | $this->logger->debug('Beginning transaction'); | ||
52 | |||
53 | parent::beginTransaction(); | ||
54 | } | ||
55 | |||
56 | public function commit(): void | ||
57 | { | ||
58 | $this->logger->debug('Committing transaction'); | ||
59 | |||
60 | parent::commit(); | ||
61 | } | ||
62 | |||
63 | public function rollBack(): void | ||
64 | { | ||
65 | $this->logger->debug('Rolling back transaction'); | ||
66 | |||
67 | parent::rollBack(); | ||
68 | } | ||
69 | } | ||
diff --git a/vendor/doctrine/dbal/src/Logging/Driver.php b/vendor/doctrine/dbal/src/Logging/Driver.php new file mode 100644 index 0000000..35acd39 --- /dev/null +++ b/vendor/doctrine/dbal/src/Logging/Driver.php | |||
@@ -0,0 +1,50 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Doctrine\DBAL\Logging; | ||
6 | |||
7 | use Doctrine\DBAL\Driver as DriverInterface; | ||
8 | use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware; | ||
9 | use Psr\Log\LoggerInterface; | ||
10 | use SensitiveParameter; | ||
11 | |||
12 | final class Driver extends AbstractDriverMiddleware | ||
13 | { | ||
14 | /** @internal This driver can be only instantiated by its middleware. */ | ||
15 | public function __construct(DriverInterface $driver, private readonly LoggerInterface $logger) | ||
16 | { | ||
17 | parent::__construct($driver); | ||
18 | } | ||
19 | |||
20 | /** | ||
21 | * {@inheritDoc} | ||
22 | */ | ||
23 | public function connect( | ||
24 | #[SensitiveParameter] | ||
25 | array $params, | ||
26 | ): Connection { | ||
27 | $this->logger->info('Connecting with parameters {params}', ['params' => $this->maskPassword($params)]); | ||
28 | |||
29 | return new Connection( | ||
30 | parent::connect($params), | ||
31 | $this->logger, | ||
32 | ); | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * @param array<string,mixed> $params Connection parameters | ||
37 | * | ||
38 | * @return array<string,mixed> | ||
39 | */ | ||
40 | private function maskPassword( | ||
41 | #[SensitiveParameter] | ||
42 | array $params, | ||
43 | ): array { | ||
44 | if (isset($params['password'])) { | ||
45 | $params['password'] = '<redacted>'; | ||
46 | } | ||
47 | |||
48 | return $params; | ||
49 | } | ||
50 | } | ||
diff --git a/vendor/doctrine/dbal/src/Logging/Middleware.php b/vendor/doctrine/dbal/src/Logging/Middleware.php new file mode 100644 index 0000000..989e0ca --- /dev/null +++ b/vendor/doctrine/dbal/src/Logging/Middleware.php | |||
@@ -0,0 +1,21 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Doctrine\DBAL\Logging; | ||
6 | |||
7 | use Doctrine\DBAL\Driver as DriverInterface; | ||
8 | use Doctrine\DBAL\Driver\Middleware as MiddlewareInterface; | ||
9 | use Psr\Log\LoggerInterface; | ||
10 | |||
11 | final class Middleware implements MiddlewareInterface | ||
12 | { | ||
13 | public function __construct(private readonly LoggerInterface $logger) | ||
14 | { | ||
15 | } | ||
16 | |||
17 | public function wrap(DriverInterface $driver): DriverInterface | ||
18 | { | ||
19 | return new Driver($driver, $this->logger); | ||
20 | } | ||
21 | } | ||
diff --git a/vendor/doctrine/dbal/src/Logging/Statement.php b/vendor/doctrine/dbal/src/Logging/Statement.php new file mode 100644 index 0000000..ed1ca7f --- /dev/null +++ b/vendor/doctrine/dbal/src/Logging/Statement.php | |||
@@ -0,0 +1,48 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Doctrine\DBAL\Logging; | ||
6 | |||
7 | use Doctrine\DBAL\Driver\Middleware\AbstractStatementMiddleware; | ||
8 | use Doctrine\DBAL\Driver\Result as ResultInterface; | ||
9 | use Doctrine\DBAL\Driver\Statement as StatementInterface; | ||
10 | use Doctrine\DBAL\ParameterType; | ||
11 | use Psr\Log\LoggerInterface; | ||
12 | |||
13 | final class Statement extends AbstractStatementMiddleware | ||
14 | { | ||
15 | /** @var array<int,mixed>|array<string,mixed> */ | ||
16 | private array $params = []; | ||
17 | |||
18 | /** @var array<int,ParameterType>|array<string,ParameterType> */ | ||
19 | private array $types = []; | ||
20 | |||
21 | /** @internal This statement can be only instantiated by its connection. */ | ||
22 | public function __construct( | ||
23 | StatementInterface $statement, | ||
24 | private readonly LoggerInterface $logger, | ||
25 | private readonly string $sql, | ||
26 | ) { | ||
27 | parent::__construct($statement); | ||
28 | } | ||
29 | |||
30 | public function bindValue(int|string $param, mixed $value, ParameterType $type): void | ||
31 | { | ||
32 | $this->params[$param] = $value; | ||
33 | $this->types[$param] = $type; | ||
34 | |||
35 | parent::bindValue($param, $value, $type); | ||
36 | } | ||
37 | |||
38 | public function execute(): ResultInterface | ||
39 | { | ||
40 | $this->logger->debug('Executing statement: {sql} (parameters: {params}, types: {types})', [ | ||
41 | 'sql' => $this->sql, | ||
42 | 'params' => $this->params, | ||
43 | 'types' => $this->types, | ||
44 | ]); | ||
45 | |||
46 | return parent::execute(); | ||
47 | } | ||
48 | } | ||