vendor/doctrine/mongodb-odm-bundle/APM/CommandLoggerRegistry.php line 16

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\Bundle\MongoDBBundle\APM;
  4. use Doctrine\ODM\MongoDB\APM\CommandLoggerInterface;
  5. use function array_map;
  6. final class CommandLoggerRegistry
  7. {
  8.     /** @var CommandLoggerInterface[] */
  9.     private $commandLoggers = [];
  10.     public function __construct(iterable $commandLoggers)
  11.     {
  12.         foreach ($commandLoggers as $commandLogger) {
  13.             $this->addLogger($commandLogger);
  14.         }
  15.     }
  16.     public function register(): void
  17.     {
  18.         array_map(static function (CommandLoggerInterface $commandLogger) {
  19.             $commandLogger->register();
  20.         }, $this->commandLoggers);
  21.     }
  22.     public function unregister(): void
  23.     {
  24.         array_map(static function (CommandLoggerInterface $commandLogger) {
  25.             $commandLogger->unregister();
  26.         }, $this->commandLoggers);
  27.     }
  28.     private function addLogger(CommandLoggerInterface $logger): void
  29.     {
  30.         $this->commandLoggers[] = $logger;
  31.     }
  32. }