| | <?php |
| |
|
| | namespace JsonRPC\Validator; |
| |
|
| | use JsonRPC\Exception\ResponseEncodingFailureException; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class JsonEncodingValidator |
| | { |
| | public static function validate() |
| | { |
| | $jsonError = json_last_error(); |
| |
|
| | if ($jsonError !== JSON_ERROR_NONE) { |
| | switch ($jsonError) { |
| | case JSON_ERROR_DEPTH: |
| | $errorMessage = 'Maximum stack depth exceeded'; |
| | break; |
| | case JSON_ERROR_STATE_MISMATCH: |
| | $errorMessage = 'Underflow or the modes mismatch'; |
| | break; |
| | case JSON_ERROR_CTRL_CHAR: |
| | $errorMessage = 'Unexpected control character found'; |
| | break; |
| | case JSON_ERROR_SYNTAX: |
| | $errorMessage = 'Syntax error, malformed JSON'; |
| | break; |
| | case JSON_ERROR_UTF8: |
| | $errorMessage = 'Malformed UTF-8 characters, possibly incorrectly encoded'; |
| | break; |
| | default: |
| | $errorMessage = 'Unknown error'; |
| | break; |
| | } |
| |
|
| | throw new ResponseEncodingFailureException($errorMessage, $jsonError); |
| | } |
| | } |
| | } |
| |
|