Skip to content

Commit 0b78905

Browse files
committed
Merge pull request clue#22 from clue/factory-loop
Factory now accepts a LoopInterface as first argument
2 parents a6551c8 + 3e2bc9d commit 0b78905

File tree

6 files changed

+16
-21
lines changed

6 files changed

+16
-21
lines changed

Diff for: README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ Once [installed](#install), you can use the following code to connect to your
1010
local redis server and send some requests:
1111

1212
```php
13+
$loop = React\EventLoop\Factory::create();
14+
$factory = new Factory($loop);
1315

14-
$factory = new Factory($connector);
1516
$factory->createClient()->then(function (Client $client) use ($loop) {
1617
$client->SET('greeting', 'Hello world');
1718
$client->APPEND('greeting', '!');

Diff for: examples/cli.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
require __DIR__ . '/../vendor/autoload.php';
99

1010
$loop = React\EventLoop\Factory::create();
11-
$factory = new React\Dns\Resolver\Factory();
12-
$resolver = $factory->create('6.6.6.6', $loop);
13-
$connector = new React\SocketClient\Connector($loop, $resolver);
14-
$factory = new Factory($connector);
11+
$factory = new Factory($loop);
1512

1613
echo '# connecting to redis...' . PHP_EOL;
1714

Diff for: examples/incr.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
require __DIR__ . '/../vendor/autoload.php';
77

88
$loop = React\EventLoop\Factory::create();
9-
$factory = new React\Dns\Resolver\Factory();
10-
$resolver = $factory->create('6.6.6.6', $loop);
11-
$connector = new React\SocketClient\Connector($loop, $resolver);
12-
$factory = new Factory($connector);
9+
$factory = new Factory($loop);
1310

1411
$factory->createClient()->then(function (Client $client) {
1512
$client->incr('test');

Diff for: src/Factory.php

+10-2
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,30 @@
66
use React\Stream\Stream;
77
use Clue\React\Redis\StreamingClient;
88
use Clue\Redis\Protocol\Factory as ProtocolFactory;
9+
use React\SocketClient\Connector;
10+
use React\Dns\Resolver\Factory as ResolverFactory;
911
use InvalidArgumentException;
1012
use BadMethodCallException;
1113
use Exception;
14+
use React\EventLoop\LoopInterface;
1215

1316
class Factory
1417
{
1518
private $connector;
1619
private $protocol;
1720

18-
public function __construct(ConnectorInterface $connector, ProtocolFactory $protocol = null)
21+
public function __construct(LoopInterface $loop, ConnectorInterface $connector = null, ProtocolFactory $protocol = null)
1922
{
20-
$this->connector = $connector;
23+
if ($connector === null) {
24+
$resolverFactory = new ResolverFactory();
25+
$connector = new Connector($loop, $resolverFactory->create('8.8.8.8', $loop));
26+
}
2127

2228
if ($protocol === null) {
2329
$protocol = new ProtocolFactory();
2430
}
31+
32+
$this->connector = $connector;
2533
$this->protocol = $protocol;
2634
}
2735

Diff for: tests/FactoryTest.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ class FactoryTest extends TestCase
1313
public function setUp()
1414
{
1515
$this->loop = new React\EventLoop\StreamSelectLoop();
16-
$factory = new React\Dns\Resolver\Factory();
17-
$resolver = $factory->create('6.6.6.6', $this->loop);
18-
$connector = new React\SocketClient\Connector($this->loop, $resolver);
19-
20-
$this->factory = new Factory($connector);
16+
$this->factory = new Factory($this->loop);
2117
}
2218

2319
public function testPrequisiteServerAcceptsAnyPassword()

Diff for: tests/FunctionalTest.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ class FunctionalTest extends TestCase
1616
public static function setUpBeforeClass()
1717
{
1818
self::$loop = new React\EventLoop\StreamSelectLoop();
19-
$factory = new React\Dns\Resolver\Factory();
20-
$resolver = $factory->create('6.6.6.6', self::$loop);
21-
$connector = new React\SocketClient\Connector(self::$loop, $resolver);
22-
23-
self::$factory = new Factory($connector);
19+
self::$factory = new Factory(self::$loop);
2420
}
2521

2622
public function testPing()

0 commit comments

Comments
 (0)