Skip to content

Commit 41babad

Browse files
committed
Add createFromConfig factory methods
1 parent c7b1105 commit 41babad

File tree

7 files changed

+30
-24
lines changed

7 files changed

+30
-24
lines changed

examples/01-one.php

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

88
$loop = React\EventLoop\Factory::create();
99

10-
$config = Config::loadSystemConfigBlocking();
11-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
12-
1310
$factory = new Factory();
14-
$resolver = $factory->create($server, $loop);
11+
$resolver = $factory->createFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1512

1613
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
1714

examples/02-concurrent.php

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

88
$loop = React\EventLoop\Factory::create();
99

10-
$config = Config::loadSystemConfigBlocking();
11-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
12-
1310
$factory = new Factory();
14-
$resolver = $factory->create($server, $loop);
11+
$resolver = $factory->createFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1512

1613
$names = array_slice($argv, 1);
1714
if (!$names) {

examples/03-cached.php

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

88
$loop = React\EventLoop\Factory::create();
99

10-
$config = Config::loadSystemConfigBlocking();
11-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
12-
1310
$factory = new Factory();
14-
$resolver = $factory->createCached($server, $loop);
11+
$resolver = $factory->createCachedFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1512

1613
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
1714

examples/11-all-ips.php

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

99
$loop = React\EventLoop\Factory::create();
1010

11-
$config = Config::loadSystemConfigBlocking();
12-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
13-
1411
$factory = new Factory();
15-
$resolver = $factory->create($server, $loop);
12+
$resolver = $factory->createFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1613

1714
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
1815

examples/12-all-types.php

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

1111
$loop = React\EventLoop\Factory::create();
1212

13-
$config = Config::loadSystemConfigBlocking();
14-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
15-
1613
$factory = new Factory();
17-
$resolver = $factory->create($server, $loop);
14+
$resolver = $factory->createFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1815

1916
$name = isset($argv[1]) ? $argv[1] : 'google.com';
2017
$type = constant('React\Dns\Model\Message::TYPE_' . (isset($argv[2]) ? $argv[2] : 'TXT'));

examples/13-reverse-dns.php

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

99
$loop = React\EventLoop\Factory::create();
1010

11-
$config = Config::loadSystemConfigBlocking();
12-
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
13-
1411
$factory = new Factory();
15-
$resolver = $factory->create($server, $loop);
12+
$resolver = $factory->createFromConfig(Config::loadSystemConfigBlocking(), $loop, '8.8.8.8');
1613

1714
$ip = isset($argv[1]) ? $argv[1] : '8.8.8.8';
1815

src/Resolver/Factory.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use React\Cache\ArrayCache;
66
use React\Cache\CacheInterface;
7+
use React\Dns\Config\Config;
78
use React\Dns\Config\HostsFile;
89
use React\Dns\Query\CachingExecutor;
910
use React\Dns\Query\CoopExecutor;
@@ -18,6 +19,29 @@
1819

1920
final class Factory
2021
{
22+
/**
23+
* @param Config $config
24+
* @param LoopInterface $loop
25+
* @param string $fallbackNameserver
26+
* @return \React\Dns\Resolver\ResolverInterface
27+
*/
28+
public function createFromConfig(Config $config, LoopInterface $loop, $fallbackNameserver)
29+
{
30+
return self::create($config->nameservers ? reset($config->nameservers) : $fallbackNameserver, $loop);
31+
}
32+
33+
/**
34+
* @param Config $config
35+
* @param LoopInterface $loop
36+
* @param string $fallbackNameserver
37+
* @param ?CacheInterface $cache
38+
* @return \React\Dns\Resolver\ResolverInterface
39+
*/
40+
public function createCachedFromConfig(Config $config, LoopInterface $loop, $fallbackNameserver, CacheInterface $cache = null)
41+
{
42+
return self::createCached($config->nameservers ? reset($config->nameservers) : $fallbackNameserver, $loop, $cache);
43+
}
44+
2145
/**
2246
* @param string $nameserver
2347
* @param LoopInterface $loop

0 commit comments

Comments
 (0)