90 lines
1.8 KiB
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);
|
|
}
|
|
}
|