addMessenger($msg); else self::$msg = new ProxyMessenger(self::$msg); return $msg; } static function get(): IMessenger { return self::$msg ??= new NullMessenger(); } static function set_verbosity(string $verbosity): void { $msg = self::get(); switch ($verbosity) { case "Q": case "silent": $msg->resetParams([ "min_level" => self::NONE, ]); break; case "q": case "quiet": $msg->resetParams([ "min_level" => self::MAJOR, ]); break; case "n": case "normal": $msg->resetParams([ "min_level" => self::NORMAL, ]); break; case "v": case "verbose": $msg->resetParams([ "min_level" => self::MINOR, ]); break; case "D": case "debug": app::set_debug(); $msg->resetParams([ "min_level" => self::DEBUG, ]); break; default: throw exceptions::forbidden_value($verbosity, "verbosity", ["silent", "quiet", "normal", "verbose", "debug"]); } } }