coupon-admin/vendor/zircote/swagger-php/src/Logger.php

90 lines
1.8 KiB
PHP

<?php declare(strict_types=1);
/**
* @license Apache 2.0
*/
namespace OpenApi;
use Exception;
/**
* Logger reports the parser and validation messages.
*
* @deprecated use \OpenApi\Generator and PSR logger instead
*/
class Logger
{
/**
* Singleton.
*
* @var Logger
*/
public static $instance;
/**
* @var callable
*/
public $log;
protected function __construct()
{
/*
* @param \Exception|string $entry
* @param int $type Error type
*/
$this->log = function ($entry, $type) {
if ($entry instanceof Exception) {
$entry = $entry->getMessage();
}
trigger_error($entry, $type);
};
}
public static function getInstance(): Logger
{
if (self::$instance === null) {
self::$instance = new Logger();
}
return self::$instance;
}
/**
* Log a OpenApi warning.
*
* @param Exception|string $entry
*/
public static function warning($entry): void
{
call_user_func(self::getInstance()->log, $entry, E_USER_WARNING);
}
/**
* Log a OpenApi notice.
*
* @param Exception|string $entry
*/
public static function notice($entry): void
{
call_user_func(self::getInstance()->log, $entry, E_USER_NOTICE);
}
/**
* Shorten class name(s).
*
* @param array|object|string $classes Class(es) to shorten
*
* @return string|string[] One or more shortened class names
*/
public static function shorten($classes)
{
$short = [];
foreach ((array) $classes as $class) {
$short[] = '@' . str_replace('OpenApi\\Annotations\\', 'OA\\', $class);
}
return is_array($classes) ? $short : array_pop($short);
}
}