value) { self::CONTINUE => 'Continue', self::SWITCHING_PROTOCOLS => 'Switching Protocols', self::PROCESSING => 'Processing', self::EARLY_HINTS => 'Early Hints', self::OK => 'OK', self::CREATED => 'Created', self::ACCEPTED => 'Accepted', self::NON_AUTHORITATIVE_INFORMATION => 'Non-Authoritative Information', self::NO_CONTENT => 'No Content', self::RESET_CONTENT => 'Reset Content', self::PARTIAL_CONTENT => 'Partial Content', self::MULTI_STATUS => 'Multi-Status', self::ALREADY_REPORTED => 'Already Reported', self::IM_USED => 'IM Used', self::MULTIPLE_CHOICES => 'Multiple Choices', self::MOVED_PERMANENTLY => 'Moved Permanently', self::FOUND => 'Found', self::SEE_OTHER => 'See Other', self::NOT_MODIFIED => 'Not Modified', self::USE_PROXY => 'Use Proxy', self::TEMPORARY_REDIRECT => 'Temporary Redirect', self::PERMANENT_REDIRECT => 'Permanent Redirect', self::BAD_REQUEST => 'Bad Request', self::UNAUTHORIZED => 'Unauthorized', self::PAYMENT_REQUIRED => 'Payment Required', self::FORBIDDEN => 'Forbidden', self::NOT_FOUND => 'Not Found', self::METHOD_NOT_ALLOWED => 'Method Not Allowed', self::NOT_ACCEPTABLE => 'Not Acceptable', self::PROXY_AUTHENTICATION_REQUIRED => 'Proxy Authentication Required', self::REQUEST_TIMEOUT => 'Request Timeout', self::CONFLICT => 'Conflict', self::GONE => 'Gone', self::LENGTH_REQUIRED => 'Length Required', self::PRECONDITION_FAILED => 'Precondition Failed', self::PAYLOAD_TOO_LARGE => 'Payload Too Large', self::URI_TOO_LONG => 'URI Too Long', self::UNSUPPORTED_MEDIA_TYPE => 'Unsupported Media Type', self::RANGE_NOT_SATISFIABLE => 'Range Not Satisfiable', self::EXPECTATION_FAILED => 'Expectation Failed', self::IM_A_TEAPOT => "I'm a teapot", self::MISDIRECTED_REQUEST => "Misdirected Request", self::UNPROCESSABLE_ENTITY => "Unprocessable Entity", self::LOCKED => 'Locked', self::FAILED_DEPENDENCY => 'Failed Dependency', self::TOO_EARLY => 'Too Early', self::UPGRADE_REQUIRED => 'Upgrade Required', self::PRECONDITION_REQUIRED => 'Precondition Required', self::TOO_MANY_REQUESTS => 'Too Many Requests', self::REQUEST_HEADER_FIELDS_TOO_LARGE => 'Request Header Fields Too Large', self::UNAVAILABLE_FOR_LEGAL_REASONS => 'Unavailable For Legal Reasons', self::INTERNAL_SERVER_ERROR => 'Internal Server Error', self::NOT_IMPLEMENTED => 'Not Implemented', self::BAD_GATEWAY => 'Bad Gateway', self::SERVICE_UNAVAILABLE => 'Service Unavailable', self::GATEWAY_TIMEOUT => 'Gateway Timeout', self::HTTP_VERSION_NOT_SUPPORTED => 'HTTP Version Not Supported', self::VARIANT_ALSO_NEGOTIATES => 'Variant Also Negotiates', self::INSUFFICIENT_STORAGE => 'Insufficient Storage', self::LOOP_DETECTED => 'Loop Detected', self::NOT_EXTENDED => 'Not Extended', self::NETWORK_AUTHENTICATION_REQUIRED => 'Network Authentication Required', self::NETWORK_CONNECT_TIMEOUT_ERROR => 'Network Connect Timeout Error', }; } public static function fromCode(int $code): CodesEnum { return match ($code) { self::CONTINUE => self::CONTINUE, self::SWITCHING_PROTOCOLS => self::SWITCHING_PROTOCOLS, self::PROCESSING => self::PROCESSING, self::EARLY_HINTS => self::EARLY_HINTS, self::OK => self::OK, self::CREATED => self::CREATED, self::ACCEPTED => self::ACCEPTED, self::NON_AUTHORITATIVE_INFORMATION => self::NON_AUTHORITATIVE_INFORMATION, self::NO_CONTENT => self::NO_CONTENT, self::RESET_CONTENT => self::RESET_CONTENT, self::PARTIAL_CONTENT => self::PARTIAL_CONTENT, self::MULTI_STATUS => self::MULTI_STATUS, self::ALREADY_REPORTED => self::ALREADY_REPORTED, self::IM_USED => self::IM_USED, self::MULTIPLE_CHOICES => self::MULTIPLE_CHOICES, self::MOVED_PERMANENTLY => self::MOVED_PERMANENTLY, self::FOUND => self::FOUND, self::SEE_OTHER => self::SEE_OTHER, self::NOT_MODIFIED => self::NOT_MODIFIED, self::USE_PROXY => self::USE_PROXY, self::TEMPORARY_REDIRECT => self::TEMPORARY_REDIRECT, self::PERMANENT_REDIRECT => self::PERMANENT_REDIRECT, // Client errors self::BAD_REQUEST => self::BAD_REQUEST, self::UNAUTHORIZED => self::UNAUTHORIZED, self::PAYMENT_REQUIRED => self::PAYMENT_REQUIRED, self::FORBIDDEN => self::FORBIDDEN, self::NOT_FOUND => self::NOT_FOUND, self::METHOD_NOT_ALLOWED => self::METHOD_NOT_ALLOWED, self::NOT_ACCEPTABLE => self::NOT_ACCEPTABLE, self::PROXY_AUTHENTICATION_REQUIRED => self::PROXY_AUTHENTICATION_REQUIRED, self::REQUEST_TIMEOUT => self::REQUEST_TIMEOUT, self::CONFLICT => self::CONFLICT, self::GONE => self::_GONE_, // Server errors self::INTERNAL_SERVER_ERROR => self::INTERNAL_SERVER_ERROR, self::NOT_IMPLEMENTED => self::NOT_IMPLEMENTED, self::BAD_GATEWAY => self::BAD_GATEWAY, self::SERVICE_UNAVAILABLE => self::SERVICE_UNAVAILABLE, self::GATEWAY_TIMEOUT => self::GATEWAY_TIMEOUT, self::HTTP_VERSION_NOT_SUPPORTED => self::HTTP_VERSION_NOT_SUPPORTED, self::VARIANT_ALSO_NEGOTIATES => self::VARIANT_ALSO_NEGOTIATES, self::INSUFFICIENT_STORAGE => self::INSUFFICIENT_STORAGE, self::LOOP_DETECTED => self::LOOP_DETECTED, self::NOT_EXTENDED => self::NOT_EXTENDED, self::NETWORK_AUTHENTICATION_REQUIRED => self::NETWORK_AUTHENTICATION_REQUIRED, self::NETWORK_CONNECT_TIMEOUT_ERROR => self::NETWORK_CONNECT_TIMEOUT_ERROR, default => throw new \InvalidArgumentException("Invalid HTTP status code: $code"), }; } }