36 lines
782 B
PHP
36 lines
782 B
PHP
<?php
|
|
|
|
namespace JsonRPC\Validator;
|
|
|
|
use JsonRPC\Exception\InvalidJsonRpcFormatException;
|
|
|
|
/**
|
|
* Class RpcFormatValidator
|
|
*
|
|
* @package JsonRPC\Validator
|
|
* @author Frederic Guillot
|
|
*/
|
|
class RpcFormatValidator
|
|
{
|
|
/**
|
|
* Validate
|
|
*
|
|
* @static
|
|
* @access public
|
|
* @param array $payload
|
|
* @throws InvalidJsonRpcFormatException
|
|
*/
|
|
public static function validate(array $payload)
|
|
{
|
|
if (! isset($payload['jsonrpc']) ||
|
|
! isset($payload['method']) ||
|
|
! is_string($payload['method']) ||
|
|
$payload['jsonrpc'] !== '2.0' ||
|
|
(isset($payload['params']) && ! is_array($payload['params']))) {
|
|
|
|
throw new InvalidJsonRpcFormatException('Invalid JSON RPC payload');
|
|
}
|
|
}
|
|
}
|
|
|