<?php declare (strict_types=1); namespace MailPoetVendor\Monolog; if (!defined('ABSPATH')) exit; use InvalidArgumentException; class Registry { private static $loggers = []; public static function addLogger(Logger $logger, ?string $name = null, bool $overwrite = \false) { $name = $name ?: $logger->getName(); if (isset(self::$loggers[$name]) && !$overwrite) { throw new InvalidArgumentException('Logger with the given name already exists'); } self::$loggers[$name] = $logger; } public static function hasLogger($logger) : bool { if ($logger instanceof Logger) { $index = \array_search($logger, self::$loggers, \true); return \false !== $index; } return isset(self::$loggers[$logger]); } public static function removeLogger($logger) : void { if ($logger instanceof Logger) { if (\false !== ($idx = \array_search($logger, self::$loggers, \true))) { unset(self::$loggers[$idx]); } } else { unset(self::$loggers[$logger]); } } public static function clear() : void { self::$loggers = []; } public static function getInstance($name) : Logger { if (!isset(self::$loggers[$name])) { throw new InvalidArgumentException(\sprintf('Requested "%s" logger instance is not in the registry', $name)); } return self::$loggers[$name]; } public static function __callStatic($name, $arguments) { return self::getInstance($name); } }