Skip to content

Commit 59f6309

Browse files
committed
Simplify usage by supporting new Socket API without nullable loop
1 parent a7a0d47 commit 59f6309

12 files changed

+32
-47
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ secure HTTPS request to google.com through a local HTTP proxy server:
7373
```php
7474
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
7575

76-
$connector = new React\Socket\Connector(null, array(
76+
$connector = new React\Socket\Connector(array(
7777
'tcp' => $proxy,
7878
'timeout' => 3.0,
7979
'dns' => false
@@ -115,7 +115,7 @@ proxy servers etc.), you can explicitly pass a custom instance of the
115115
[`ConnectorInterface`](https://github.com/reactphp/socket#connectorinterface):
116116

117117
```php
118-
$connector = new React\Socket\Connector(null, array(
118+
$connector = new React\Socket\Connector(array(
119119
'dns' => '127.0.0.1',
120120
'tcp' => array(
121121
'bindto' => '192.168.10.1:0'
@@ -175,7 +175,7 @@ in ReactPHP's [`Connector`](https://github.com/reactphp/socket#connector):
175175
```php
176176
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
177177

178-
$connector = new React\Socket\Connector(null, array(
178+
$connector = new React\Socket\Connector(array(
179179
'tcp' => $proxy,
180180
'dns' => false
181181
));
@@ -201,7 +201,7 @@ ReactPHP's [`Connector`](https://github.com/reactphp/socket#connector):
201201
```php
202202
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
203203

204-
$connector = new React\Socket\Connector(null, array(
204+
$connector = new React\Socket\Connector(array(
205205
'tcp' => $proxy,
206206
'dns' => false
207207
));
@@ -228,12 +228,12 @@ This allows you to send both plain HTTP and TLS-encrypted HTTPS requests like th
228228
```php
229229
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
230230

231-
$connector = new React\Socket\Connector(null, array(
231+
$connector = new React\Socket\Connector(array(
232232
'tcp' => $proxy,
233233
'dns' => false
234234
));
235235

236-
$browser = new React\Http\Browser(null, $connector);
236+
$browser = new React\Http\Browser($connector);
237237

238238
$browser->get('https://example.com/')->then(function (Psr\Http\Message\ResponseInterface $response) {
239239
var_dump($response->getHeaders(), (string) $response->getBody());
@@ -263,7 +263,7 @@ underlying connection attempt if it takes too long:
263263
```php
264264
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
265265

266-
$connector = new React\Socket\Connector(null, array(
266+
$connector = new React\Socket\Connector(array(
267267
'tcp' => $proxy,
268268
'dns' => false,
269269
'timeout' => 3.0
@@ -307,7 +307,7 @@ other examples explicitly disable DNS resolution like this:
307307
```php
308308
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
309309

310-
$connector = new React\Socket\Connector(null, array(
310+
$connector = new React\Socket\Connector(array(
311311
'tcp' => $proxy,
312312
'dns' => false
313313
));
@@ -319,7 +319,7 @@ If you want to explicitly use *local DNS resolution*, you can use the following
319319
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080');
320320

321321
// set up Connector which uses Google's public DNS (8.8.8.8)
322-
$connector = new React\Socket\Connector(null, array(
322+
$connector = new React\Socket\Connector(array(
323323
'tcp' => $proxy,
324324
'dns' => '8.8.8.8'
325325
));

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
"require": {
2020
"php": ">=5.3",
2121
"react/promise": " ^2.1 || ^1.2.1",
22-
"react/socket": "^1.8",
22+
"react/socket": "^1.9",
2323
"ringcentral/psr7": "^1.2"
2424
},
2525
"require-dev": {
26+
"clue/block-react": "^1.1",
2627
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8",
2728
"react/event-loop": "^1.2",
28-
"react/http": "^1.4",
29-
"clue/block-react": "^1.1"
29+
"react/http": "^1.5"
3030
}
3131
}

examples/01-http-request.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323

2424
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
2525

26-
$connector = new React\Socket\Connector(null, array(
26+
$connector = new React\Socket\Connector(array(
2727
'tcp' => $proxy,
2828
'dns' => false
2929
));
3030

31-
$browser = new React\Http\Browser(null, $connector);
31+
$browser = new React\Http\Browser($connector);
3232

3333
$browser->get('https://example.com/')->then(function (Psr\Http\Message\ResponseInterface $response) {
3434
var_dump($response->getHeaders(), (string) $response->getBody());

examples/02-optional-proxy-http-request.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020
if ($url !== false) {
2121
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
2222

23-
$connector = new React\Socket\Connector(null, array(
23+
$connector = new React\Socket\Connector(array(
2424
'tcp' => $proxy,
2525
'timeout' => 3.0,
2626
'dns' => false
2727
));
2828
}
2929

30-
$browser = new React\Http\Browser(null, $connector);
30+
$browser = new React\Http\Browser($connector);
3131

3232
$browser->get('https://example.com/')->then(function (Psr\Http\Message\ResponseInterface $response) {
3333
var_dump($response->getHeaders(), (string) $response->getBody());

examples/11-proxy-raw-https-protocol.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
2828

29-
$connector = new React\Socket\Connector(null, array(
29+
$connector = new React\Socket\Connector(array(
3030
'tcp' => $proxy,
3131
'timeout' => 3.0,
3232
'dns' => false

examples/12-optional-proxy-raw-https-protocol.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
if ($url !== false) {
2727
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
2828

29-
$connector = new React\Socket\Connector(null, array(
29+
$connector = new React\Socket\Connector(array(
3030
'tcp' => $proxy,
3131
'timeout' => 3.0,
3232
'dns' => false

examples/13-custom-proxy-headers.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
)
3434
);
3535

36-
$connector = new React\Socket\Connector(null, array(
36+
$connector = new React\Socket\Connector(array(
3737
'tcp' => $proxy,
3838
'timeout' => 3.0,
3939
'dns' => false,

examples/21-proxy-raw-smtp-protocol.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
2727

28-
$connector = new React\Socket\Connector(null, array(
28+
$connector = new React\Socket\Connector(array(
2929
'tcp' => $proxy,
3030
'timeout' => 3.0,
3131
'dns' => false

examples/22-proxy-raw-smtps-protocol.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
$proxy = new Clue\React\HttpProxy\ProxyConnector($url);
3030

31-
$connector = new React\Socket\Connector(null, array(
31+
$connector = new React\Socket\Connector(array(
3232
'tcp' => $proxy,
3333
'timeout' => 3.0,
3434
'dns' => false

tests/AbstractTestCase.php

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

55
use PHPUnit\Framework\TestCase;
66

7-
abstract class AbstractTestCase extends \PHPUnit\Framework\TestCase
7+
abstract class AbstractTestCase extends TestCase
88
{
99
protected function expectCallableNever()
1010
{
@@ -77,6 +77,4 @@ public function setExpectedException($exception, $exceptionMessage = '', $except
7777
parent::setExpectedException($exception, $exceptionMessage, $exceptionCode);
7878
}
7979
}
80-
8180
}
82-

tests/FunctionalTest.php

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,14 @@
44

55
use Clue\React\Block;
66
use Clue\React\HttpProxy\ProxyConnector;
7-
use React\EventLoop\Factory;
8-
use React\Socket\Connector;
7+
use React\EventLoop\Loop;
98

109
/** @group internet */
1110
class FunctionalTest extends AbstractTestCase
1211
{
13-
private $loop;
14-
private $connector;
15-
16-
/**
17-
* @before
18-
*/
19-
public function setUpConnector()
20-
{
21-
$this->loop = Factory::create();
22-
$this->connector = new Connector($this->loop);
23-
}
24-
2512
public function testNonListeningSocketRejectsConnection()
2613
{
27-
$proxy = new ProxyConnector('127.0.0.1:9999', $this->connector);
14+
$proxy = new ProxyConnector('127.0.0.1:9999');
2815

2916
$promise = $proxy->connect('google.com:80');
3017

@@ -33,12 +20,12 @@ public function testNonListeningSocketRejectsConnection()
3320
'Connection to tcp://google.com:80 failed because connection to proxy failed (ECONNREFUSED)',
3421
defined('SOCKET_ECONNREFUSED') ? SOCKET_ECONNREFUSED : 111
3522
);
36-
Block\await($promise, $this->loop, 3.0);
23+
Block\await($promise, Loop::get(), 3.0);
3724
}
3825

3926
public function testPlainGoogleDoesNotAcceptConnectMethod()
4027
{
41-
$proxy = new ProxyConnector('google.com', $this->connector);
28+
$proxy = new ProxyConnector('google.com');
4229

4330
$promise = $proxy->connect('google.com:80');
4431

@@ -47,7 +34,7 @@ public function testPlainGoogleDoesNotAcceptConnectMethod()
4734
'Connection to tcp://google.com:80 failed because proxy refused connection with HTTP error code 405 (Method Not Allowed) (ECONNREFUSED)',
4835
defined('SOCKET_ECONNREFUSED') ? SOCKET_ECONNREFUSED : 111
4936
);
50-
Block\await($promise, $this->loop, 3.0);
37+
Block\await($promise, Loop::get(), 3.0);
5138
}
5239

5340
public function testSecureGoogleDoesNotAcceptConnectMethod()
@@ -56,7 +43,7 @@ public function testSecureGoogleDoesNotAcceptConnectMethod()
5643
$this->markTestSkipped('TLS not supported on legacy HHVM');
5744
}
5845

59-
$proxy = new ProxyConnector('https://google.com:443', $this->connector);
46+
$proxy = new ProxyConnector('https://google.com:443');
6047

6148
$promise = $proxy->connect('google.com:80');
6249

@@ -65,7 +52,7 @@ public function testSecureGoogleDoesNotAcceptConnectMethod()
6552
'Connection to tcp://google.com:80 failed because proxy refused connection with HTTP error code 405 (Method Not Allowed) (ECONNREFUSED)',
6653
defined('SOCKET_ECONNREFUSED') ? SOCKET_ECONNREFUSED : 111
6754
);
68-
Block\await($promise, $this->loop, 3.0);
55+
Block\await($promise, Loop::get(), 3.0);
6956
}
7057

7158
public function testSecureGoogleDoesNotAcceptPlainStream()
@@ -79,15 +66,15 @@ public function testSecureGoogleDoesNotAcceptPlainStream()
7966
'Connection to tcp://google.com:80 failed because connection to proxy was lost while waiting for response (ECONNRESET)',
8067
defined('SOCKET_ECONNRESET') ? SOCKET_ECONNRESET : 104
8168
);
82-
Block\await($promise, $this->loop, 3.0);
69+
Block\await($promise, Loop::get(), 3.0);
8370
}
8471

8572
/**
8673
* @requires PHP 7
8774
*/
8875
public function testCancelWhileConnectingShouldNotCreateGarbageCycles()
8976
{
90-
$proxy = new ProxyConnector('google.com', $this->connector);
77+
$proxy = new ProxyConnector('google.com');
9178

9279
gc_collect_cycles();
9380
gc_collect_cycles(); // clear twice to avoid leftovers in PHP 7.4 with ext-xdebug and code coverage turned on

tests/ProxyConnectorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace Clue\Tests\React\HttpProxy;
44

55
use Clue\React\HttpProxy\ProxyConnector;
6-
use React\Promise\Promise;
76
use React\Socket\ConnectionInterface;
87
use React\Promise\Deferred;
8+
use React\Promise\Promise;
99

1010
class ProxyConnectorTest extends AbstractTestCase
1111
{

0 commit comments

Comments
 (0)