friendship ended with social-app. php is my new best friend
1<?php
2
3namespace React\Socket;
4
5/**
6 * The `ConnectorInterface` is responsible for providing an interface for
7 * establishing streaming connections, such as a normal TCP/IP connection.
8 *
9 * This is the main interface defined in this package and it is used throughout
10 * React's vast ecosystem.
11 *
12 * Most higher-level components (such as HTTP, database or other networking
13 * service clients) accept an instance implementing this interface to create their
14 * TCP/IP connection to the underlying networking service.
15 * This is usually done via dependency injection, so it's fairly simple to actually
16 * swap this implementation against any other implementation of this interface.
17 *
18 * The interface only offers a single `connect()` method.
19 *
20 * @see ConnectionInterface
21 */
22interface ConnectorInterface
23{
24 /**
25 * Creates a streaming connection to the given remote address
26 *
27 * If returns a Promise which either fulfills with a stream implementing
28 * `ConnectionInterface` on success or rejects with an `Exception` if the
29 * connection is not successful.
30 *
31 * ```php
32 * $connector->connect('google.com:443')->then(
33 * function (React\Socket\ConnectionInterface $connection) {
34 * // connection successfully established
35 * },
36 * function (Exception $error) {
37 * // failed to connect due to $error
38 * }
39 * );
40 * ```
41 *
42 * The returned Promise MUST be implemented in such a way that it can be
43 * cancelled when it is still pending. Cancelling a pending promise MUST
44 * reject its value with an Exception. It SHOULD clean up any underlying
45 * resources and references as applicable.
46 *
47 * ```php
48 * $promise = $connector->connect($uri);
49 *
50 * $promise->cancel();
51 * ```
52 *
53 * @param string $uri
54 * @return \React\Promise\PromiseInterface<ConnectionInterface>
55 * Resolves with a `ConnectionInterface` on success or rejects with an `Exception` on error.
56 * @see ConnectionInterface
57 */
58 public function connect($uri);
59}