|
<?php |
|
|
|
namespace JsonRPC\Request; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BatchRequestParser extends RequestParser |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
public function parse() |
|
{ |
|
$responses = array(); |
|
|
|
foreach ($this->payload as $payload) { |
|
$responses[] = RequestParser::create() |
|
->withPayload($payload) |
|
->withProcedureHandler($this->procedureHandler) |
|
->withMiddlewareHandler($this->middlewareHandler) |
|
->withLocalException($this->localExceptions) |
|
->parse(); |
|
} |
|
|
|
$responses = array_filter($responses); |
|
return empty($responses) ? '' : '['.implode(',', $responses).']'; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function isBatchRequest(array $payload) |
|
{ |
|
return array_keys($payload) === range(0, count($payload) - 1); |
|
} |
|
} |
|
|