Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | 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 as DriverInterface;
8
use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware;
9
use Psr\Log\LoggerInterface;
621 lars 10
use SensitiveParameter;
148 lars 11
 
12
final class Driver extends AbstractDriverMiddleware
13
{
14
    private LoggerInterface $logger;
15
 
16
    /** @internal This driver can be only instantiated by its middleware. */
17
    public function __construct(DriverInterface $driver, LoggerInterface $logger)
18
    {
19
        parent::__construct($driver);
20
 
21
        $this->logger = $logger;
22
    }
23
 
24
    /**
25
     * {@inheritDoc}
26
     */
621 lars 27
    public function connect(
28
        #[SensitiveParameter]
29
        array $params
30
    ) {
148 lars 31
        $this->logger->info('Connecting with parameters {params}', ['params' => $this->maskPassword($params)]);
32
 
33
        return new Connection(
34
            parent::connect($params),
35
            $this->logger,
36
        );
37
    }
38
 
39
    /**
40
     * @param array<string,mixed> $params Connection parameters
41
     *
42
     * @return array<string,mixed>
43
     */
621 lars 44
    private function maskPassword(
45
        #[SensitiveParameter]
46
        array $params
47
    ): array {
148 lars 48
        if (isset($params['password'])) {
49
            $params['password'] = '<redacted>';
50
        }
51
 
52
        if (isset($params['url'])) {
53
            $params['url'] = '<redacted>';
54
        }
55
 
56
        return $params;
57
    }
58
}