/** * Invokes the request. * * @param RequestInterface $request * @return array */ private function invoke(RequestInterface $request) { try { $request->validate(); $result = ['jsonrpc' => '2.0', 'id' => $request->getId(), 'result' => call_user_func($this->invoker, $request->getMethod(), $request->getParameters())]; } catch (\Exception $e) { $result = $this->getErrorResponse($request->getId(), $e->getCode(), $e->getMessage()); } if ($request->isNotification() && empty($result['error'])) { $result = null; } return $result; }