Passed
Pull Request — master (#125)
by
unknown
02:14
created

BasicNetworkResolver::withServerRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
c 1
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Yiisoft\Yii\Web\NetworkResolver;
5
6
7
use Psr\Http\Message\ServerRequestInterface;
8
9
class BasicNetworkResolver implements NetworkResolverInterface
10
{
11
    /**
12
     * @var ServerRequestInterface|null
13
     */
14
    private $serverRequest;
15
16 2
    public function getRemoteIp(): string
17
    {
18 2
        if($this->serverRequest === null) {
19
            throw new \RuntimeException('ServerRequest doesn\'t set, see NetworkResolverInterface::withServerRequest()!');
20
        }
21 2
        return $this->serverRequest->getServerParams()['REMOTE_ADDR'];
22
    }
23
24 2
    public function getUserIp(): string
25
    {
26 2
        return $this->getRemoteIp();
27
    }
28
29 2
    public function withServerRequest(ServerRequestInterface $serverRequest)
30
    {
31 2
        $new = clone $this;
32 2
        $new->serverRequest = $serverRequest;
33 2
        return $new;
34
    }
35
}
36