Subversion-Projekte lars-tiefland.laravel_shop

Revision

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