Completed
Push — master ( 4ce137...cce6a6 )
by Ivan
03:36 queued 01:24
created

Crawler::getUri()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 3
Bugs 0 Features 2
Metric Value
c 3
b 0
f 2
dl 0
loc 4
ccs 0
cts 0
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace SP\Crawler;
4
5
use Psr\Http\Message\RequestInterface;
6
use SP\Crawler\Element\AbstractElement;
7
use Psr\Http\Message\UriInterface;
8
use GuzzleHttp\Psr7\Request;
9
use DOMDocument;
10
use DOMElement;
11
12
/**
13
 * @author    Ivan Kerin <[email protected]>
14
 * @copyright 2015, Clippings Ltd.
15
 * @license   http://spdx.org/licenses/BSD-3-Clause
16
 */
17
class Crawler extends Reader
18
{
19
    /**
20
     * @var LoaderInterface
21
     */
22
    private $loader;
23
24
    /**
25
     * @param LoaderInterface $loader
26
     * @param DOMDocument     $document
27
     */
28
    public function __construct(LoaderInterface $loader, DOMDocument $document)
29
    {
30
        $this->loader = $loader;
31
32
        parent::__construct($document);
33
    }
34
35
    /**
36
     * @return LoaderInterface
37
     */
38 1
    public function getLoader()
39
    {
40 1
        return $this->loader;
41
    }
42
43
    /**
44
     * @param  RequestInterface $request
45
     */
46
    public function sendRequest(RequestInterface $request)
47
    {
48
        $response = $this->loader->send($request);
49
        $contents = $response->getBody()->getContents();
50
51
        $this->setDocumentContent($contents);
52
    }
53
54
    /**
55
     * @param  string $uri
56
     */
57
    public function open(UriInterface $uri)
58
    {
59
        $request = new Request('GET', $uri);
60
61
        $this->sendRequest($request);
62
    }
63
64
    /**
65
     * @return Psr\Http\Message\UriInterface
66
     */
67
    public function getUri()
68
    {
69
        return $this->loader->getCurrentUri();
70
    }
71
}
72