* @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:----CJX7hrxZNZKDpGVp58BNlCjzy6kGnMnO2nUkJoEfklMPzSKLyrefkNX3GcHc5F9KFwdEWtij+LTPtCyojD+nJ4IWI9a/DHSrEnDEDakIZVZDkxli8x93RV11VqtaYTyOxRIf/Y0vjV8HFaFBtUAQBrVEzvgVe+q25rrAx0FapYeM8vPy9SvS3hPrSXLVwGzz0rGVAwwuPb+oOyx0JKSUfQdYNoq79pe+AwcahngWbxDIxvh1QtGfJeKh3gWKwRm/E9n0eqEsMiZsHWFaDSm2ylt9bJbvl6tO8Mj27irFhurXOcsG9bWGSNtyy0CFA73O2KeyBjypk8/ygsC6dN2N6eRWEY8N63gU4RveZ564YZxTiEoopmBR0nDPrypdMhYPOMS/vZJoF/6diXMUCnGJieFwyudO112ZplgjG8kcurKPNhphNp18El23+TNnJOEwKqt/56ec7h8Sda1mKyN+jvqroQSXEZeglHghw3TM8xtVdrcgQIxJ5H/00v3CWJaX9xinTzisIU7812pgKIO5Yso9qSy+KCqnvKJFwpMWWaxALkTKRDaBsnYGtZC28XqEnckrchlUzxu2lxpPDb6xn8zHem91Ge7Z8RY0a/B8bleKGipKgXo5dDO+PCrzm2dsgFaR8gpW/Ke+2FgVXZXom/sXkpXYFsWd5w40qJDlFs4=----ATTACHMENT:----NTgwNDI0Mzg1MDgxOTM3MiA1OTkwNzIyMDUwODY2NjcwIDc4NDgyMjQ0NDA2NjgyODE=