vendor/doctrine/dbal/src/Logging/Connection.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\DBAL\Logging;
  4. use Doctrine\DBAL\Driver\Connection as ConnectionInterface;
  5. use Doctrine\DBAL\Driver\Middleware\AbstractConnectionMiddleware;
  6. use Doctrine\DBAL\Driver\Result;
  7. use Doctrine\DBAL\Driver\Statement as DriverStatement;
  8. use Psr\Log\LoggerInterface;
  9. final class Connection extends AbstractConnectionMiddleware
  10. {
  11. private LoggerInterface $logger;
  12. /** @internal This connection can be only instantiated by its driver. */
  13. public function __construct(ConnectionInterface $connection, LoggerInterface $logger)
  14. {
  15. parent::__construct($connection);
  16. $this->logger = $logger;
  17. }
  18. public function __destruct()
  19. {
  20. $this->logger->info('Disconnecting');
  21. }
  22. public function prepare(string $sql): DriverStatement
  23. {
  24. return new Statement(
  25. parent::prepare($sql),
  26. $this->logger,
  27. $sql,
  28. );
  29. }
  30. public function query(string $sql): Result
  31. {
  32. $this->logger->debug('Executing query: {sql}', ['sql' => $sql]);
  33. return parent::query($sql);
  34. }
  35. public function exec(string $sql): int
  36. {
  37. $this->logger->debug('Executing statement: {sql}', ['sql' => $sql]);
  38. return parent::exec($sql);
  39. }
  40. /**
  41. * {@inheritDoc}
  42. */
  43. public function beginTransaction()
  44. {
  45. $this->logger->debug('Beginning transaction');
  46. return parent::beginTransaction();
  47. }
  48. /**
  49. * {@inheritDoc}
  50. */
  51. public function commit()
  52. {
  53. $this->logger->debug('Committing transaction');
  54. return parent::commit();
  55. }
  56. /**
  57. * {@inheritDoc}
  58. */
  59. public function rollBack()
  60. {
  61. $this->logger->debug('Rolling back transaction');
  62. return parent::rollBack();
  63. }
  64. }