/** * @param Settings $settings * * @return \RemoteObjects\Client|\stdClass */ public function createEndpoint(Settings $settings) { $url = parse_url($settings->getPath()); // local call if (empty($url['scheme']) || $url['scheme'] == 'file') { $endpoint = new Endpoint($settings); } else { $transport = new CurlClient($settings->getPath()); $encoder = new JsonRpc20Encoder(); if ($settings->isEncryptionEnabled()) { $encoder = new RsaEncoder($encoder, $settings->getRsaRemotePublicKey(), $settings->getRsaLocalPrivateKey()); } $client = new Client($transport, $encoder); $endpoint = $client->castAsRemoteObject(); } return $endpoint; }