20250628 1.1 Beta 2
This commit is contained in:
		
							
								
								
									
										108
									
								
								sources/enums/JsonErrorCode.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								sources/enums/JsonErrorCode.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| <?php | ||||
|  | ||||
| namespace goodboyalex\php_components_pack\enums; | ||||
|  | ||||
| use goodboyalex\php_components_pack\traits\EnumExtensionsTrait; | ||||
|  | ||||
| /** | ||||
|  * Перечисление известных ошибок при работе с JSON файлами. | ||||
|  * | ||||
|  * @author Александр Бабаев | ||||
|  * @package php_components_pack | ||||
|  * @version 1.0 | ||||
|  * @since 1.1.0 | ||||
|  */ | ||||
| enum JsonErrorCode: int | ||||
| { | ||||
|     // Подключаю расширение для Enum | ||||
|     use EnumExtensionsTrait; | ||||
|  | ||||
|     /** | ||||
|      * Неизвестная ошибка. | ||||
|      */ | ||||
|     case Unknown = -1; | ||||
|  | ||||
|     /** | ||||
|      * Ошибок нет. | ||||
|      */ | ||||
|     case None = 0; | ||||
|  | ||||
|     /** | ||||
|      * Достигнута максимальная глубина стека. | ||||
|      */ | ||||
|     case Depth = 1; | ||||
|  | ||||
|     /** | ||||
|      * Неверный или некорректный JSON. | ||||
|      */ | ||||
|     case StateMismatch = 2; | ||||
|  | ||||
|     /** | ||||
|      * Ошибка управляющего символа, возможно, неверная кодировка. | ||||
|      */ | ||||
|     case CTRLChar = 3; | ||||
|  | ||||
|     /** | ||||
|      * Синтаксическая ошибка. | ||||
|      */ | ||||
|     case Syntax = 4; | ||||
|  | ||||
|     /** | ||||
|      * Некорректные для кодировки UTF-8 символы, возможно, неверная кодировка. | ||||
|      */ | ||||
|     case UTF8 = 5; | ||||
|  | ||||
|     /** | ||||
|      * Одна или несколько зацикленных ссылок в кодируемом значении. | ||||
|      */ | ||||
|     case Recursion = 6; | ||||
|  | ||||
|     /** | ||||
|      * Одно или несколько значений NAN или INF в кодируемом значении. | ||||
|      */ | ||||
|     case InfOrNan = 7; | ||||
|  | ||||
|     /** | ||||
|      * Передали значение с неподдерживаемым типом. | ||||
|      */ | ||||
|     case UnsupportedType = 8; | ||||
|  | ||||
|     /** | ||||
|      * Имя свойства не может быть закодировано. | ||||
|      */ | ||||
|     case INVALID_PROPERTY_NAME = 9; | ||||
|  | ||||
|     /** | ||||
|      * Некорректный для кодировки UTF-16 символ, возможно, некорректно закодирован. | ||||
|      */ | ||||
|     case UTF16 = 10; | ||||
|  | ||||
|     /** | ||||
|      * Ключ не содержит вложений, хотя от него требуется обратное. | ||||
|      */ | ||||
|     case KeyIsNotArray = 11; | ||||
|  | ||||
|     /** | ||||
|      * Класс не реализует интерфейс ISerializable. | ||||
|      */ | ||||
|     case NotISerializable = 12; | ||||
|  | ||||
|     /** | ||||
|      * Получает код ошибки из последней JSON ошибки. | ||||
|      * | ||||
|      * @return JsonErrorCode Код ошибки. | ||||
|      */ | ||||
|     public static function FromLastError (): JsonErrorCode | ||||
|     { | ||||
|         // Получаю код ошибки | ||||
|         $error = json_last_error(); | ||||
|  | ||||
|         // Проверяю, что код ошибки в диапазоне [0; 10] | ||||
|         if ($error < 0 || $error > 10) | ||||
|             // - верну неизвестную ошибку, если код не в диапазоне | ||||
|             return self::Unknown; | ||||
|  | ||||
|         // Перевожу код в Enum | ||||
|         return self::FromInt($error); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user