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

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.     /** @var LoggerInterface */
  10.     private $logger;
  11.     /**
  12.      * @internal This driver can be only instantiated by its middleware.
  13.      */
  14.     public function __construct(DriverInterface $driverLoggerInterface $logger)
  15.     {
  16.         parent::__construct($driver);
  17.         $this->logger $logger;
  18.     }
  19.     /**
  20.      * {@inheritDoc}
  21.      */
  22.     public function connect(array $params)
  23.     {
  24.         $this->logger->info('Connecting with parameters {params}', ['params' => $this->maskPassword($params)]);
  25.         return new Connection(
  26.             parent::connect($params),
  27.             $this->logger
  28.         );
  29.     }
  30.     /**
  31.      * @param array<string,mixed> $params Connection parameters
  32.      *
  33.      * @return array<string,mixed>
  34.      */
  35.     private function maskPassword(array $params): array
  36.     {
  37.         if (isset($params['password'])) {
  38.             $params['password'] = '<redacted>';
  39.         }
  40.         if (isset($params['url'])) {
  41.             $params['url'] = '<redacted>';
  42.         }
  43.         return $params;
  44.     }
  45. }