public function defaultHandle($request, stdClass $context)
{
$error = null;
set_error_handler(function ($errno, $errstr, $errfile, $errline) use(&$error) {
$error = new ErrorException($errstr, 0, $errno, $errfile, $errline);
}, $this->errorTypes);
ob_start();
ob_implicit_flush(0);
$context->clients = $this;
$context->methods = $this->calls;
$beforeFilterHandler = $this->beforeFilterHandler;
$response = $beforeFilterHandler($request, $context);
$self = $this;
return $response->then(function ($result) use($self, &$error, $context) {
@ob_end_clean();
restore_error_handler();
if ($error === null) {
return $result;
}
return $self->endError($error, $context);
});
}