vendor/doctrine/dbal/src/Logging/Driver.php line 31

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\DBAL\Logging;
  4. use Doctrine\DBAL\Driver as DriverInterface;
  5. use Doctrine\DBAL\Driver\Middleware\AbstractDriverMiddleware;
  6. use Psr\Log\LoggerInterface;
  7. final class Driver extends AbstractDriverMiddleware
  8. {
  9.     private LoggerInterface $logger;
  10.     /** @internal This driver can be only instantiated by its middleware. */
  11.     public function __construct(DriverInterface $driverLoggerInterface $logger)
  12.     {
  13.         parent::__construct($driver);
  14.         $this->logger $logger;
  15.     }
  16.     /**
  17.      * {@inheritDoc}
  18.      */
  19.     public function connect(array $params)
  20.     {
  21.         $this->logger->info('Connecting with parameters {params}', ['params' => $this->maskPassword($params)]);
  22.         return new Connection(
  23.             parent::connect($params),
  24.             $this->logger,
  25.         );
  26.     }
  27.     /**
  28.      * @param array<string,mixed> $params Connection parameters
  29.      *
  30.      * @return array<string,mixed>
  31.      */
  32.     private function maskPassword(array $params): array
  33.     {
  34.         if (isset($params['password'])) {
  35.             $params['password'] = '<redacted>';
  36.         }
  37.         if (isset($params['url'])) {
  38.             $params['url'] = '<redacted>';
  39.         }
  40.         return $params;
  41.     }
  42. }