Completed
Push — master ( 1f0ecb...bcc29d )
by Ivan
04:21
created

Crawler::sendRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 7
ccs 5
cts 5
cp 1
rs 9.4286
cc 1
eloc 4
nc 1
nop 1
crap 1
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 1
    public function __construct(LoaderInterface $loader, DOMDocument $document)
29
    {
30 1
        $this->loader = $loader;
31
32 1
        parent::__construct($document);
33 1
    }
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 1
    public function sendRequest(RequestInterface $request)
47
    {
48 1
        $response = $this->loader->send($request);
49 1
        $contents = $response->getBody()->getContents();
50
51 1
        $this->setDocumentContent($contents);
52 1
    }
53
54
    /**
55
     * @param  string $uri
56
     */
57 1
    public function open(UriInterface $uri)
58
    {
59 1
        $request = new Request('GET', $uri);
60
61 1
        $this->sendRequest($request);
62 1
    }
63
64
    /**
65
     * @return Psr\Http\Message\UriInterface
66
     */
67 1
    public function getUri()
68
    {
69 1
        return $this->loader->getCurrentUri();
70
    }
71
}
72