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);
 | |
|     }
 | |
| }
 |