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. use SensitiveParameter;
  8. final class Driver extends AbstractDriverMiddleware
  9. {
  10.     private LoggerInterface $logger;
  11.     /** @internal This driver can be only instantiated by its middleware. */
  12.     public function __construct(DriverInterface $driverLoggerInterface $logger)
  13.     {
  14.         parent::__construct($driver);
  15.         $this->logger $logger;
  16.     }
  17.     /**
  18.      * {@inheritDoc}
  19.      */
  20.     public function connect(
  21.         #[SensitiveParameter]
  22.         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(
  36.         #[SensitiveParameter]
  37.         array $params
  38.     ): array {
  39.         if (isset($params['password'])) {
  40.             $params['password'] = '<redacted>';
  41.         }
  42.         if (isset($params['url'])) {
  43.             $params['url'] = '<redacted>';
  44.         }
  45.         return $params;
  46.     }
  47. }