Passed
Push — 1.x ( 8aa29d...91d62d )
by Kevin
02:07
created

DomResponse   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 20
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A dump() 0 16 3
1
<?php
2
3
namespace Zenstruck\Browser\Response;
4
5
use Symfony\Component\DomCrawler\Crawler;
6
use Symfony\Component\VarDumper\VarDumper;
7
use Zenstruck\Browser\Response;
8
9
/**
10
 * @author Kevin Bond <[email protected]>
11
 */
12
abstract class DomResponse extends Response
13
{
14
    abstract public function crawler(): Crawler;
15
16
    final public function dump(?string $selector = null): void
17
    {
18
        if (null === $selector) {
19
            parent::dump();
20
21
            return;
22
        }
23
24
        $elements = $this->crawler()->filter($selector);
25
26
        if (0 === $elements->count()) {
27
            throw new \RuntimeException("Element \"{$selector}\" not found.");
28
        }
29
30
        $elements->each(function(Crawler $node) {
31
            VarDumper::dump($node->outerHtml());
32
        });
33
    }
34
}
35