Passed
Pull Request — master (#223)
by Dmitriy
05:03 queued 02:33
created

VarDumperHandlerInterfaceProxy::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Collector;
6
7
use Yiisoft\VarDumper\HandlerInterface;
0 ignored issues
show
Bug introduced by
The type Yiisoft\VarDumper\HandlerInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
8
9
final class VarDumperHandlerInterfaceProxy implements HandlerInterface
10
{
11
    public function __construct(
12
        private HandlerInterface $decorated,
13
        private VarDumperCollector $collector,
14
    ) {
15
    }
16
17
    public function handle(mixed $variable, int $depth, bool $highlight = false): void
18
    {
19
        $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
20
21
        $callStack = null;
22
        foreach ($stack as $value) {
23
            if (!isset($value['file'])) {
24
                continue;
25
            }
26
            if (str_ends_with($value['file'], '/var-dumper/src/functions.php')) {
27
                continue;
28
            }
29
            if (str_ends_with($value['file'], '/var-dumper/src/VarDumper.php')) {
30
                continue;
31
            }
32
            $callStack = $value;
33
            break;
34
        }
35
36
        $this->collector->collect(
37
            $variable,
38
            $callStack === null ? '' : $callStack['file'] . ':' . $callStack['line']
39
        );
40
        $this->decorated->handle($variable, $depth, $highlight);
41
    }
42
}
43