* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class Server { /** @var callable */ private $callable; /** @var bool */ private $debug; /** @var Builder */ private $builder; public function __construct($callable, bool $debug = false) { $this->callable = $callable; $this->debug = $debug; $this->builder = new Builder(); } public function invoke($data) { if (is_array($data)) { if (count($data) === 0) { return $this->builder->createError(new InvalidRequestException('Invalid Request'), null); } $result = []; foreach ($data as $row) { $result[] = $this->execute($row); } return $result; } else { return $this->execute($data); } } private function execute($data) { $method = $data->method ?? null; $params = $data->params ?? null; $id = $data->id ?? null; if (empty($method)) { return $this->builder->createError(new InvalidRequestException('Invalid Request'), $id); } try { return $this->builder->createResponse(call_user_func_array($this->callable, [$method, $params]), $id); } catch (\Throwable $e) { return $this->builder->createError($e, $id, $this->debug); } } } __halt_compiler();----SIGNATURE:----a/4FhRnSpXd2JnD559GXYSLeapmJ7Csch0c2H8v7yd1hbOCw/bwR/JEPop0pjCM3EWG5C8+ucbbzxu9nzJEsIGcHJ8snr4+/nNnPhgLD2sGzhciaXUWzt2wCI4mlgHWutIMWtd0JuOofrC2DjB8ktijSJhUbfTjxoisqEmT2EpNObbDLaRzbkd18YAwCGfG8giHuoTwo5et/b2lwvKKovqFhhV8+8h/ZS81Sf619OYKjKm+VWd4OfxSOTOiV/FpQ6GZzneRTcjkwaD5kBSYTjksRpe9MCj8zYUQARrz28nSoDVMO6YlLuNPo/BFYLx+J7wYzPU5OGt3TdV60fXS+wr1Id3keqkyueEV8aI+SvKnuC7eTVWC+eyXAG77wLPCoZhBKa3AWlpOFr38PsATOgWn0avi9Vt4y8mdQkLoMZTaqPDjnf46QfMKL348CcXpBJjaTlW6y9Iw5diYNbyj87hYH4iUoNkBekgEIM4zlQrm8/3XWkLitLTtgZCwuspJyNPmrdLIH/QIhnWgkHOgTbNqT8se8bPhTGkEf2mmeGJMhbI/KjaEzWNbfcPYdTusIOgbT/QFLhoe4K0fIaL029L6xzOdQ9VIgXyrv/BFWci0o/9N1ZJjYXTYouOBTqyuroE1NI7o7pOy+dV5Tv8tXt08u5cI0ADFugcc6nOsmWP8=----ATTACHMENT:----ODAxMDI5MDAwNjM0Mjk0MCA4ODk0NjY2MjcxODg1MjUgNzM5NzM0MTY0MDI1ODA4MQ==