Skip to content

Commit f37c964

Browse files
authored
Merge pull request #410 from clue-labs/default-loop
Simplify usage by supporting new default loop
2 parents bc53727 + d9401a5 commit f37c964

38 files changed

+240
-329
lines changed

README.md

Lines changed: 70 additions & 81 deletions
Large diffs are not rendered by default.

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
"php": ">=5.3.0",
3030
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
3131
"psr/http-message": "^1.0",
32-
"react/event-loop": "^1.0 || ^0.5",
32+
"react/event-loop": "^1.2",
3333
"react/promise": "^2.3 || ^1.2.1",
3434
"react/promise-stream": "^1.1",
35-
"react/socket": "^1.6",
36-
"react/stream": "^1.1",
35+
"react/socket": "^1.8",
36+
"react/stream": "^1.2",
3737
"ringcentral/psr7": "^1.2"
3838
},
3939
"require-dev": {

examples/01-client-get-request.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55

66
require __DIR__ . '/../vendor/autoload.php';
77

8-
$loop = React\EventLoop\Factory::create();
9-
$client = new Browser($loop);
8+
$client = new Browser();
109

1110
$client->get('http://google.com/')->then(function (ResponseInterface $response) {
1211
var_dump($response->getHeaders(), (string)$response->getBody());
1312
});
14-
15-
$loop->run();

examples/02-client-concurrent-requests.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
require __DIR__ . '/../vendor/autoload.php';
77

8-
$loop = React\EventLoop\Factory::create();
9-
$client = new Browser($loop);
8+
$client = new Browser();
109

1110
$client->head('http://www.github.com/clue/http-react')->then(function (ResponseInterface $response) {
1211
var_dump($response->getHeaders(), (string)$response->getBody());
@@ -19,5 +18,3 @@
1918
$client->get('http://www.lueck.tv/psocksd')->then(function (ResponseInterface $response) {
2019
var_dump($response->getHeaders(), (string)$response->getBody());
2120
});
22-
23-
$loop->run();

examples/03-client-request-any.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88

99
require __DIR__ . '/../vendor/autoload.php';
1010

11-
$loop = React\EventLoop\Factory::create();
12-
$client = new Browser($loop);
11+
$client = new Browser();
1312

1413
$promises = array(
1514
$client->head('http://www.github.com/clue/http-react'),
@@ -28,5 +27,3 @@
2827
var_dump($response->getHeaders());
2928
echo PHP_EOL . $response->getBody();
3029
});
31-
32-
$loop->run();

examples/04-client-post-json.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
require __DIR__ . '/../vendor/autoload.php';
77

8-
$loop = React\EventLoop\Factory::create();
9-
$client = new Browser($loop);
8+
$client = new Browser();
109

1110
$data = array(
1211
'name' => array(
@@ -25,5 +24,3 @@
2524
)->then(function (ResponseInterface $response) {
2625
echo (string)$response->getBody();
2726
}, 'printf');
28-
29-
$loop->run();

examples/05-client-put-xml.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
require __DIR__ . '/../vendor/autoload.php';
77

8-
$loop = React\EventLoop\Factory::create();
9-
$client = new Browser($loop);
8+
$client = new Browser();
109

1110
$xml = new SimpleXMLElement('<users></users>');
1211
$child = $xml->addChild('user');
@@ -22,5 +21,3 @@
2221
)->then(function (ResponseInterface $response) {
2322
echo (string)$response->getBody();
2423
}, 'printf');
25-
26-
$loop->run();

examples/11-client-http-connect-proxy.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,24 @@
66
// $ php examples/72-server-http-connect-proxy.php 8080
77
// $ php examples/11-client-http-connect-proxy.php
88

9-
use React\Http\Browser;
109
use Clue\React\HttpProxy\ProxyConnector as HttpConnectClient;
1110
use Psr\Http\Message\ResponseInterface;
12-
use React\EventLoop\Factory as LoopFactory;
11+
use React\Http\Browser;
1312
use React\Socket\Connector;
1413

1514
require __DIR__ . '/../vendor/autoload.php';
1615

17-
$loop = LoopFactory::create();
18-
1916
// create a new HTTP CONNECT proxy client which connects to a HTTP CONNECT proxy server listening on localhost:8080
20-
$proxy = new HttpConnectClient('127.0.0.1:8080', new Connector($loop));
17+
$proxy = new HttpConnectClient('127.0.0.1:8080', new Connector());
2118

2219
// create a Browser object that uses the HTTP CONNECT proxy client for connections
23-
$connector = new Connector($loop, array(
20+
$connector = new Connector(null, array(
2421
'tcp' => $proxy,
2522
'dns' => false
2623
));
27-
$browser = new Browser($loop, $connector);
24+
$browser = new Browser(null, $connector);
2825

2926
// demo fetching HTTP headers (or bail out otherwise)
3027
$browser->get('https://www.google.com/')->then(function (ResponseInterface $response) {
3128
echo RingCentral\Psr7\str($response);
3229
}, 'printf');
33-
34-
$loop->run();

examples/12-client-socks-proxy.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,24 @@
33
// not already running a SOCKS proxy server?
44
// Try LeProxy.org or this: `ssh -D 1080 localhost`
55

6-
use React\Http\Browser;
76
use Clue\React\Socks\Client as SocksClient;
87
use Psr\Http\Message\ResponseInterface;
9-
use React\EventLoop\Factory as LoopFactory;
8+
use React\Http\Browser;
109
use React\Socket\Connector;
1110

1211
require __DIR__ . '/../vendor/autoload.php';
1312

14-
$loop = LoopFactory::create();
15-
1613
// create a new SOCKS proxy client which connects to a SOCKS proxy server listening on localhost:1080
17-
$proxy = new SocksClient('127.0.0.1:1080', new Connector($loop));
14+
$proxy = new SocksClient('127.0.0.1:1080', new Connector());
1815

1916
// create a Browser object that uses the SOCKS proxy client for connections
20-
$connector = new Connector($loop, array(
17+
$connector = new Connector(null, array(
2118
'tcp' => $proxy,
2219
'dns' => false
2320
));
24-
$browser = new Browser($loop, $connector);
21+
$browser = new Browser(null, $connector);
2522

2623
// demo fetching HTTP headers (or bail out otherwise)
2724
$browser->get('https://www.google.com/')->then(function (ResponseInterface $response) {
2825
echo RingCentral\Psr7\str($response);
2926
}, 'printf');
30-
31-
$loop->run();

examples/13-client-ssh-proxy.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
11
<?php
22

3-
use React\Http\Browser;
43
use Clue\React\SshProxy\SshSocksConnector;
54
use Psr\Http\Message\ResponseInterface;
6-
use React\EventLoop\Factory as LoopFactory;
5+
use React\EventLoop\Loop;
6+
use React\Http\Browser;
77
use React\Socket\Connector;
88

99
require __DIR__ . '/../vendor/autoload.php';
1010

11-
$loop = LoopFactory::create();
12-
1311
// create a new SSH proxy client which connects to a SSH server listening on localhost:22
1412
// You can pass any SSH server address as first argument, e.g. [email protected]
15-
$proxy = new SshSocksConnector(isset($argv[1]) ? $argv[1] : 'localhost:22', $loop);
13+
$proxy = new SshSocksConnector(isset($argv[1]) ? $argv[1] : 'localhost:22', Loop::get());
1614

1715
// create a Browser object that uses the SSH proxy client for connections
18-
$connector = new Connector($loop, array(
16+
$connector = new Connector(null, array(
1917
'tcp' => $proxy,
2018
'dns' => false
2119
));
22-
$browser = new Browser($loop, $connector);
20+
$browser = new Browser(null, $connector);
2321

2422
// demo fetching HTTP headers (or bail out otherwise)
2523
$browser->get('https://www.google.com/')->then(function (ResponseInterface $response) {
2624
echo RingCentral\Psr7\str($response);
2725
}, 'printf');
28-
29-
$loop->run();

0 commit comments

Comments
 (0)