diff --git a/src/Executor/ExecutionResult.php b/src/Executor/ExecutionResult.php index 043ddc8..dbc3591 100644 --- a/src/Executor/ExecutionResult.php +++ b/src/Executor/ExecutionResult.php @@ -78,7 +78,7 @@ class ExecutionResult implements \JsonSerializable * ); * * @api - * @return $this + * @return self */ public function setErrorFormatter(callable $errorFormatter) { @@ -98,7 +98,7 @@ class ExecutionResult implements \JsonSerializable * } * * @api - * @return $this + * @return self */ public function setErrorsHandler(callable $handler) { diff --git a/src/Language/AST/Node.php b/src/Language/AST/Node.php index e12deec..4645c4f 100644 --- a/src/Language/AST/Node.php +++ b/src/Language/AST/Node.php @@ -48,7 +48,7 @@ abstract class Node } /** - * @return $this + * @return self */ public function cloneDeep() { diff --git a/src/Language/Lexer.php b/src/Language/Lexer.php index 924f8e0..e39d933 100644 --- a/src/Language/Lexer.php +++ b/src/Language/Lexer.php @@ -690,7 +690,7 @@ class Lexer * * @param $positionOffset * @param $byteStreamOffset - * @return $this + * @return self */ private function moveStringCursor($positionOffset, $byteStreamOffset) { diff --git a/src/Server/Helper.php b/src/Server/Helper.php index d39de0f..552f449 100644 --- a/src/Server/Helper.php +++ b/src/Server/Helper.php @@ -1,4 +1,7 @@ readRawBody(); + $rawBody = $readRawBodyFn ? $readRawBodyFn() : $this->readRawBody(); $bodyParams = ['query' => $rawBody ?: '']; - } else if (stripos($contentType, 'application/json') !== false) { - $rawBody = $readRawBodyFn ? $readRawBodyFn() : $this->readRawBody(); + } elseif (stripos($contentType, 'application/json') !== false) { + $rawBody = $readRawBodyFn ? $readRawBodyFn() : $this->readRawBody(); $bodyParams = json_decode($rawBody ?: '', true); if (json_last_error()) { - throw new RequestError("Could not parse JSON: " . json_last_error_msg()); + throw new RequestError('Could not parse JSON: ' . json_last_error_msg()); } - if (!is_array($bodyParams)) { + + if (! is_array($bodyParams)) { throw new RequestError( - "GraphQL Server expects JSON object or array, but got " . + 'GraphQL Server expects JSON object or array, but got ' . Utils::printSafeJson($bodyParams) ); } - } else if (stripos($contentType, 'application/x-www-form-urlencoded') !== false) { + } elseif (stripos($contentType, 'application/x-www-form-urlencoded') !== false) { $bodyParams = $_POST; - } else if (stripos($contentType, 'multipart/form-data') !== false) { + } elseif (stripos($contentType, 'multipart/form-data') !== false) { $bodyParams = $_POST; - } else if (null === $contentType) { - throw new RequestError('Missing "Content-Type" header'); } else { - throw new RequestError("Unexpected content type: " . Utils::printSafeJson($contentType)); + throw new RequestError('Unexpected content type: ' . Utils::printSafeJson($contentType)); } } @@ -90,9 +105,9 @@ class Helper * Returned value is a suitable input for `executeOperation` or `executeBatch` (if array) * * @api - * @param string $method - * @param array $bodyParams - * @param array $queryParams + * @param string $method + * @param mixed[] $bodyParams + * @param mixed[] $queryParams * @return OperationParams|OperationParams[] * @throws RequestError */ @@ -100,11 +115,11 @@ class Helper { if ($method === 'GET') { $result = OperationParams::create($queryParams, true); - } else if ($method === 'POST') { + } elseif ($method === 'POST') { if (isset($bodyParams[0])) { $result = []; foreach ($bodyParams as $index => $entry) { - $op = OperationParams::create($entry); + $op = OperationParams::create($entry); $result[] = $op; } } else { @@ -113,6 +128,7 @@ class Helper } else { throw new RequestError('HTTP Method "' . $method . '" is not supported'); } + return $result; } @@ -121,44 +137,47 @@ class Helper * if params are invalid (or empty array when params are valid) * * @api - * @param OperationParams $params * @return Error[] */ public function validateOperationParams(OperationParams $params) { $errors = []; - if (!$params->query && !$params->queryId) { + if (! $params->query && ! $params->queryId) { $errors[] = new RequestError('GraphQL Request must include at least one of those two parameters: "query" or "queryId"'); } + if ($params->query && $params->queryId) { $errors[] = new RequestError('GraphQL Request parameters "query" and "queryId" are mutually exclusive'); } - if ($params->query !== null && (!is_string($params->query) || empty($params->query))) { + if ($params->query !== null && (! is_string($params->query) || empty($params->query))) { $errors[] = new RequestError( 'GraphQL Request parameter "query" must be string, but got ' . Utils::printSafeJson($params->query) ); } - if ($params->queryId !== null && (!is_string($params->queryId) || empty($params->queryId))) { + + if ($params->queryId !== null && (! is_string($params->queryId) || empty($params->queryId))) { $errors[] = new RequestError( 'GraphQL Request parameter "queryId" must be string, but got ' . Utils::printSafeJson($params->queryId) ); } - if ($params->operation !== null && (!is_string($params->operation) || empty($params->operation))) { + if ($params->operation !== null && (! is_string($params->operation) || empty($params->operation))) { $errors[] = new RequestError( 'GraphQL Request parameter "operation" must be string, but got ' . Utils::printSafeJson($params->operation) ); } - if ($params->variables !== null && (!is_array($params->variables) || isset($params->variables[0]))) { + + if ($params->variables !== null && (! is_array($params->variables) || isset($params->variables[0]))) { $errors[] = new RequestError( 'GraphQL Request parameter "variables" must be object or JSON string parsed to object, but got ' . Utils::printSafeJson($params->getOriginalInput('variables')) ); } + return $errors; } @@ -167,15 +186,13 @@ class Helper * (or promise when promise adapter is different from SyncPromiseAdapter) * * @api - * @param ServerConfig $config - * @param OperationParams $op * * @return ExecutionResult|Promise */ public function executeOperation(ServerConfig $config, OperationParams $op) { $promiseAdapter = $config->getPromiseAdapter() ?: Executor::getPromiseAdapter(); - $result = $this->promiseToExecuteOperation($promiseAdapter, $config, $op); + $result = $this->promiseToExecuteOperation($promiseAdapter, $config, $op); if ($promiseAdapter instanceof SyncPromiseAdapter) { $result = $promiseAdapter->wait($result); @@ -189,14 +206,13 @@ class Helper * (thus, effectively batching deferreds|promises of all queries at once) * * @api - * @param ServerConfig $config * @param OperationParams[] $operations * @return ExecutionResult|ExecutionResult[]|Promise */ public function executeBatch(ServerConfig $config, array $operations) { $promiseAdapter = $config->getPromiseAdapter() ?: Executor::getPromiseAdapter(); - $result = []; + $result = []; foreach ($operations as $operation) { $result[] = $this->promiseToExecuteOperation($promiseAdapter, $config, $operation, true); @@ -208,32 +224,39 @@ class Helper if ($promiseAdapter instanceof SyncPromiseAdapter) { $result = $promiseAdapter->wait($result); } + return $result; } /** - * @param PromiseAdapter $promiseAdapter - * @param ServerConfig $config - * @param OperationParams $op * @param bool $isBatch * @return Promise */ - private function promiseToExecuteOperation(PromiseAdapter $promiseAdapter, ServerConfig $config, OperationParams $op, $isBatch = false) - { + private function promiseToExecuteOperation( + PromiseAdapter $promiseAdapter, + ServerConfig $config, + OperationParams $op, + $isBatch = false + ) { try { - if (!$config->getSchema()) { - throw new InvariantViolation("Schema is required for the server"); + if (! $config->getSchema()) { + throw new InvariantViolation('Schema is required for the server'); } - if ($isBatch && !$config->getQueryBatching()) { - throw new RequestError("Batched queries are not supported by this server"); + + if ($isBatch && ! $config->getQueryBatching()) { + throw new RequestError('Batched queries are not supported by this server'); } $errors = $this->validateOperationParams($op); - if (!empty($errors)) { - $errors = Utils::map($errors, function(RequestError $err) { - return Error::createLocatedError($err, null, null); - }); + if (! empty($errors)) { + $errors = Utils::map( + $errors, + function (RequestError $err) { + return Error::createLocatedError($err, null, null); + } + ); + return $promiseAdapter->createFulfilled( new ExecutionResult(null, $errors) ); @@ -241,13 +264,13 @@ class Helper $doc = $op->queryId ? $this->loadPersistedQuery($config, $op) : $op->query; - if (!$doc instanceof DocumentNode) { + if (! $doc instanceof DocumentNode) { $doc = Parser::parse($doc); } $operationType = AST::getOperation($doc, $op->operation); - if ($op->isReadOnly() && $operationType !== 'query') { - throw new RequestError("GET supports only query operation"); + if ($operationType !== 'query' && $op->isReadOnly()) { + throw new RequestError('GET supports only query operation'); } $result = GraphQL::promiseToExecute( @@ -261,7 +284,6 @@ class Helper $config->getFieldResolver(), $this->resolveValidationRules($config, $op, $doc, $operationType) ); - } catch (RequestError $e) { $result = $promiseAdapter->createFulfilled( new ExecutionResult(null, [Error::createLocatedError($e)]) @@ -278,10 +300,13 @@ class Helper } if ($config->getErrorFormatter() || $config->getDebug()) { $result->setErrorFormatter( - FormattedError::prepareFormatter($config->getErrorFormatter(), - $config->getDebug()) + FormattedError::prepareFormatter( + $config->getErrorFormatter(), + $config->getDebug() + ) ); } + return $result; }; @@ -289,25 +314,23 @@ class Helper } /** - * @param ServerConfig $config - * @param OperationParams $op * @return mixed * @throws RequestError */ - private function loadPersistedQuery(ServerConfig $config, OperationParams $op) + private function loadPersistedQuery(ServerConfig $config, OperationParams $operationParams) { // Load query if we got persisted query id: $loader = $config->getPersistentQueryLoader(); - if (!$loader) { - throw new RequestError("Persisted queries are not supported by this server"); + if (! $loader) { + throw new RequestError('Persisted queries are not supported by this server'); } - $source = $loader($op->queryId, $op); + $source = $loader($operationParams->queryId, $operationParams); - if (!is_string($source) && !$source instanceof DocumentNode) { + if (! is_string($source) && ! $source instanceof DocumentNode) { throw new InvariantViolation(sprintf( - "Persistent query loader must return query string or instance of %s but got: %s", + 'Persistent query loader must return query string or instance of %s but got: %s', DocumentNode::class, Utils::printSafe($source) )); @@ -317,23 +340,24 @@ class Helper } /** - * @param ServerConfig $config - * @param OperationParams $params - * @param DocumentNode $doc - * @param $operationType - * @return array + * @param string $operationType + * @return mixed[]|null */ - private function resolveValidationRules(ServerConfig $config, OperationParams $params, DocumentNode $doc, $operationType) - { + private function resolveValidationRules( + ServerConfig $config, + OperationParams $params, + DocumentNode $doc, + $operationType + ) { // Allow customizing validation rules per operation: $validationRules = $config->getValidationRules(); if (is_callable($validationRules)) { $validationRules = $validationRules($params, $doc, $operationType); - if (!is_array($validationRules)) { + if (! is_array($validationRules)) { throw new InvariantViolation(sprintf( - "Expecting validation rules to be array or callable returning array, but got: %s", + 'Expecting validation rules to be array or callable returning array, but got: %s', Utils::printSafe($validationRules) )); } @@ -343,10 +367,7 @@ class Helper } /** - * @param ServerConfig $config - * @param OperationParams $params - * @param DocumentNode $doc - * @param $operationType + * @param string $operationType * @return mixed */ private function resolveRootValue(ServerConfig $config, OperationParams $params, DocumentNode $doc, $operationType) @@ -361,14 +382,15 @@ class Helper } /** - * @param ServerConfig $config - * @param OperationParams $params - * @param DocumentNode $doc - * @param $operationType + * @param string $operationType * @return mixed */ - private function resolveContextValue(ServerConfig $config, OperationParams $params, DocumentNode $doc, $operationType) - { + private function resolveContextValue( + ServerConfig $config, + OperationParams $params, + DocumentNode $doc, + $operationType + ) { $context = $config->getContext(); if ($context instanceof \Closure) { @@ -383,12 +405,12 @@ class Helper * * @api * @param Promise|ExecutionResult|ExecutionResult[] $result - * @param bool $exitWhenDone + * @param bool $exitWhenDone */ public function sendResponse($result, $exitWhenDone = false) { if ($result instanceof Promise) { - $result->then(function($actualResult) use ($exitWhenDone) { + $result->then(function ($actualResult) use ($exitWhenDone) { $this->doSendResponse($actualResult, $exitWhenDone); }); } else { @@ -396,10 +418,6 @@ class Helper } } - /** - * @param $result - * @param $exitWhenDone - */ private function doSendResponse($result, $exitWhenDone) { $httpStatus = $this->resolveHttpStatus($result); @@ -407,9 +425,9 @@ class Helper } /** - * @param array|\JsonSerializable $jsonSerializable - * @param int $httpStatus - * @param bool $exitWhenDone + * @param mixed[]|\JsonSerializable $jsonSerializable + * @param int $httpStatus + * @param bool $exitWhenDone */ public function emitResponse($jsonSerializable, $httpStatus, $exitWhenDone) { @@ -431,37 +449,41 @@ class Helper } /** - * @param $result + * @param ExecutionResult|mixed[] $result * @return int */ private function resolveHttpStatus($result) { if (is_array($result) && isset($result[0])) { - Utils::each($result, function ($executionResult, $index) { - if (!$executionResult instanceof ExecutionResult) { - throw new InvariantViolation(sprintf( - "Expecting every entry of batched query result to be instance of %s but entry at position %d is %s", - ExecutionResult::class, - $index, - Utils::printSafe($executionResult) - )); + Utils::each( + $result, + function ($executionResult, $index) { + if (! $executionResult instanceof ExecutionResult) { + throw new InvariantViolation(sprintf( + 'Expecting every entry of batched query result to be instance of %s but entry at position %d is %s', + ExecutionResult::class, + $index, + Utils::printSafe($executionResult) + )); + } } - }); + ); $httpStatus = 200; } else { - if (!$result instanceof ExecutionResult) { + if (! $result instanceof ExecutionResult) { throw new InvariantViolation(sprintf( - "Expecting query result to be instance of %s but got %s", + 'Expecting query result to be instance of %s but got %s', ExecutionResult::class, Utils::printSafe($result) )); } - if ($result->data === null && !empty($result->errors)) { + if ($result->data === null && ! empty($result->errors)) { $httpStatus = 400; } else { $httpStatus = 200; } } + return $httpStatus; } @@ -469,8 +491,7 @@ class Helper * Converts PSR-7 request to OperationParams[] * * @api - * @param ServerRequestInterface $request - * @return array|Helper + * @return OperationParams[]|OperationParams * @throws RequestError */ public function parsePsrRequest(ServerRequestInterface $request) @@ -480,32 +501,32 @@ class Helper } else { $contentType = $request->getHeader('content-type'); - if (!isset($contentType[0])) { + if (! isset($contentType[0])) { throw new RequestError('Missing "Content-Type" header'); } if (stripos($contentType[0], 'application/graphql') !== false) { $bodyParams = ['query' => $request->getBody()->getContents()]; - } else if (stripos($contentType[0], 'application/json') !== false) { + } elseif (stripos($contentType[0], 'application/json') !== false) { $bodyParams = $request->getParsedBody(); - if (null === $bodyParams) { + if ($bodyParams === null) { throw new InvariantViolation( - "PSR-7 request is expected to provide parsed body for \"application/json\" requests but got null" + 'PSR-7 request is expected to provide parsed body for "application/json" requests but got null' ); } - if (!is_array($bodyParams)) { + if (! is_array($bodyParams)) { throw new RequestError( - "GraphQL Server expects JSON object or array, but got " . + 'GraphQL Server expects JSON object or array, but got ' . Utils::printSafeJson($bodyParams) ); } } else { $bodyParams = $request->getParsedBody(); - if (!is_array($bodyParams)) { - throw new RequestError("Unexpected content type: " . Utils::printSafeJson($contentType[0])); + if (! is_array($bodyParams)) { + throw new RequestError('Unexpected content type: ' . Utils::printSafeJson($contentType[0])); } } } @@ -522,19 +543,17 @@ class Helper * * @api * @param Promise|ExecutionResult|ExecutionResult[] $result - * @param ResponseInterface $response - * @param StreamInterface $writableBodyStream * @return Promise|ResponseInterface */ public function toPsrResponse($result, ResponseInterface $response, StreamInterface $writableBodyStream) { if ($result instanceof Promise) { - return $result->then(function($actualResult) use ($response, $writableBodyStream) { + return $result->then(function ($actualResult) use ($response, $writableBodyStream) { return $this->doConvertToPsrResponse($actualResult, $response, $writableBodyStream); }); - } else { - return $this->doConvertToPsrResponse($result, $response, $writableBodyStream); } + + return $this->doConvertToPsrResponse($result, $response, $writableBodyStream); } private function doConvertToPsrResponse($result, ResponseInterface $response, StreamInterface $writableBodyStream) diff --git a/src/Server/OperationParams.php b/src/Server/OperationParams.php index 85782fe..f592a95 100644 --- a/src/Server/OperationParams.php +++ b/src/Server/OperationParams.php @@ -1,6 +1,15 @@ originalInput = $params; $params += [ @@ -68,25 +73,25 @@ class OperationParams 'documentid' => null, // alias to queryid 'id' => null, // alias to queryid 'operationname' => null, - 'variables' => null + 'variables' => null, ]; - if ($params['variables'] === "") { + if ($params['variables'] === '') { $params['variables'] = null; } if (is_string($params['variables'])) { $tmp = json_decode($params['variables'], true); - if (!json_last_error()) { + if (! json_last_error()) { $params['variables'] = $tmp; } } - $instance->query = $params['query']; - $instance->queryId = $params['queryid'] ?: $params['documentid'] ?: $params['id']; + $instance->query = $params['query']; + $instance->queryId = $params['queryid'] ?: $params['documentid'] ?: $params['id']; $instance->operation = $params['operationname']; $instance->variables = $params['variables']; - $instance->readOnly = (bool) $readonly; + $instance->readOnly = (bool) $readonly; return $instance; } @@ -98,7 +103,7 @@ class OperationParams */ public function getOriginalInput($key) { - return isset($this->originalInput[$key]) ? $this->originalInput[$key] : null; + return $this->originalInput[$key] ?? null; } /** diff --git a/src/Server/RequestError.php b/src/Server/RequestError.php index d07f527..cde74f4 100644 --- a/src/Server/RequestError.php +++ b/src/Server/RequestError.php @@ -1,4 +1,7 @@ $value) { $method = 'set' . ucfirst($key); - if (!method_exists($instance, $method)) { - throw new InvariantViolation("Unknown server config option \"$key\""); + if (! method_exists($instance, $method)) { + throw new InvariantViolation(sprintf('Unknown server config option "%s"', $key)); } $instance->$method($value); } + return $instance; } - /** - * @var Schema - */ + /** @var Schema */ private $schema; - /** - * @var mixed|\Closure - */ + /** @var mixed|\Closure */ private $context; - /** - * @var mixed|\Closure - */ + /** @var mixed|\Closure */ private $rootValue; - /** - * @var callable|null - */ + /** @var callable|null */ private $errorFormatter; - /** - * @var callable|null - */ + /** @var callable|null */ private $errorsHandler; - /** - * @var bool - */ + /** @var bool */ private $debug = false; - /** - * @var bool - */ + /** @var bool */ private $queryBatching = false; - /** - * @var array|callable - */ + /** @var AbstractValidationRule[]|callable */ private $validationRules; - /** - * @var callable - */ + /** @var callable */ private $fieldResolver; - /** - * @var PromiseAdapter - */ + /** @var PromiseAdapter */ private $promiseAdapter; - /** - * @var callable - */ + /** @var callable */ private $persistentQueryLoader; /** * @api - * @param Schema $schema - * @return $this + * @return self */ public function setSchema(Schema $schema) { $this->schema = $schema; + return $this; } /** * @api * @param mixed|\Closure $context - * @return $this + * @return self */ public function setContext($context) { $this->context = $context; + return $this; } /** * @api * @param mixed|\Closure $rootValue - * @return $this + * @return self */ public function setRootValue($rootValue) { $this->rootValue = $rootValue; + return $this; } @@ -134,12 +124,12 @@ class ServerConfig * Expects function(Throwable $e) : array * * @api - * @param callable $errorFormatter - * @return $this + * @return self */ public function setErrorFormatter(callable $errorFormatter) { $this->errorFormatter = $errorFormatter; + return $this; } @@ -147,12 +137,12 @@ class ServerConfig * Expects function(array $errors, callable $formatter) : array * * @api - * @param callable $handler - * @return $this + * @return self */ public function setErrorsHandler(callable $handler) { $this->errorsHandler = $handler; + return $this; } @@ -160,12 +150,12 @@ class ServerConfig * Set validation rules for this server. * * @api - * @param array|callable - * @return $this + * @param AbstractValidationRule[]|callable $validationRules + * @return self */ public function setValidationRules($validationRules) { - if (!is_callable($validationRules) && !is_array($validationRules) && $validationRules !== null) { + if (! is_callable($validationRules) && ! is_array($validationRules) && $validationRules !== null) { throw new InvariantViolation( 'Server config expects array of validation rules or callable returning such array, but got ' . Utils::printSafe($validationRules) @@ -173,17 +163,18 @@ class ServerConfig } $this->validationRules = $validationRules; + return $this; } /** * @api - * @param callable $fieldResolver - * @return $this + * @return self */ public function setFieldResolver(callable $fieldResolver) { $this->fieldResolver = $fieldResolver; + return $this; } @@ -193,12 +184,12 @@ class ServerConfig * This function must return query string or valid DocumentNode. * * @api - * @param callable $persistentQueryLoader - * @return $this + * @return self */ public function setPersistentQueryLoader(callable $persistentQueryLoader) { $this->persistentQueryLoader = $persistentQueryLoader; + return $this; } @@ -207,11 +198,12 @@ class ServerConfig * * @api * @param bool|int $set - * @return $this + * @return self */ public function setDebug($set = true) { $this->debug = $set; + return $this; } @@ -220,22 +212,23 @@ class ServerConfig * * @api * @param bool $enableBatching - * @return $this + * @return self */ public function setQueryBatching($enableBatching) { $this->queryBatching = (bool) $enableBatching; + return $this; } /** * @api - * @param PromiseAdapter $promiseAdapter - * @return $this + * @return self */ public function setPromiseAdapter(PromiseAdapter $promiseAdapter) { $this->promiseAdapter = $promiseAdapter; + return $this; } @@ -288,7 +281,7 @@ class ServerConfig } /** - * @return array|callable + * @return AbstractValidationRule[]|callable */ public function getValidationRules() { diff --git a/src/Server/StandardServer.php b/src/Server/StandardServer.php index 9684205..c631a83 100644 --- a/src/Server/StandardServer.php +++ b/src/Server/StandardServer.php @@ -1,4 +1,7 @@ [ - FormattedError::createFromException($error, $debug) - ] + 'errors' => [FormattedError::createFromException($error, $debug)], ]; - $helper = new Helper(); + $helper = new Helper(); $helper->emitResponse($response, 500, $exitWhenDone); } @@ -69,15 +67,15 @@ class StandardServer * Creates new instance of a standard GraphQL HTTP server * * @api - * @param ServerConfig|array $config + * @param ServerConfig|mixed[] $config */ public function __construct($config) { if (is_array($config)) { $config = ServerConfig::create($config); } - if (!$config instanceof ServerConfig) { - throw new InvariantViolation("Expecting valid server config, but got " . Utils::printSafe($config)); + if (! $config instanceof ServerConfig) { + throw new InvariantViolation('Expecting valid server config, but got ' . Utils::printSafe($config)); } $this->config = $config; $this->helper = new Helper(); @@ -95,7 +93,7 @@ class StandardServer * * @api * @param OperationParams|OperationParams[] $parsedBody - * @param bool $exitWhenDone + * @param bool $exitWhenDone */ public function handleRequest($parsedBody = null, $exitWhenDone = false) { @@ -120,15 +118,15 @@ class StandardServer */ public function executeRequest($parsedBody = null) { - if (null === $parsedBody) { + if ($parsedBody === null) { $parsedBody = $this->helper->parseHttpRequest(); } if (is_array($parsedBody)) { return $this->helper->executeBatch($this->config, $parsedBody); - } else { - return $this->helper->executeOperation($this->config, $parsedBody); } + + return $this->helper->executeOperation($this->config, $parsedBody); } /** @@ -138,17 +136,13 @@ class StandardServer * (e.g. using specific JsonResponse instance of some framework). * * @api - * @param ServerRequestInterface $request - * @param ResponseInterface $response - * @param StreamInterface $writableBodyStream * @return ResponseInterface|Promise */ public function processPsrRequest( ServerRequestInterface $request, ResponseInterface $response, StreamInterface $writableBodyStream - ) - { + ) { $result = $this->executePsrRequest($request); return $this->helper->toPsrResponse($result, $response, $writableBodyStream); } @@ -158,7 +152,6 @@ class StandardServer * (or promise when promise adapter is different from SyncPromiseAdapter) * * @api - * @param ServerRequestInterface $request * @return ExecutionResult|ExecutionResult[]|Promise */ public function executePsrRequest(ServerRequestInterface $request)