Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 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
    private LoggerInterface $logger;
16
 
17
    /** @internal This connection can be only instantiated by its driver. */
18
    public function __construct(ConnectionInterface $connection, LoggerInterface $logger)
19
    {
20
        parent::__construct($connection);
21
 
22
        $this->logger = $logger;
23
    }
24
 
25
    public function __destruct()
26
    {
27
        $this->logger->info('Disconnecting');
28
    }
29
 
30
    public function prepare(string $sql): DriverStatement
31
    {
32
        return new Statement(
33
            parent::prepare($sql),
34
            $this->logger,
35
            $sql,
36
        );
37
    }
38
 
39
    public function query(string $sql): Result
40
    {
41
        $this->logger->debug('Executing query: {sql}', ['sql' => $sql]);
42
 
43
        return parent::query($sql);
44
    }
45
 
46
    public function exec(string $sql): int
47
    {
48
        $this->logger->debug('Executing statement: {sql}', ['sql' => $sql]);
49
 
50
        return parent::exec($sql);
51
    }
52
 
53
    /**
54
     * {@inheritDoc}
55
     */
56
    public function beginTransaction()
57
    {
58
        $this->logger->debug('Beginning transaction');
59
 
60
        return parent::beginTransaction();
61
    }
62
 
63
    /**
64
     * {@inheritDoc}
65
     */
66
    public function commit()
67
    {
68
        $this->logger->debug('Committing transaction');
69
 
70
        return parent::commit();
71
    }
72
 
73
    /**
74
     * {@inheritDoc}
75
     */
76
    public function rollBack()
77
    {
78
        $this->logger->debug('Rolling back transaction');
79
 
80
        return parent::rollBack();
81
    }
82
}