Completed
Push — master ( b2eaf8...dfdf36 )
by Iman
08:38 queued 05:36
created

HeyMan::writeDebugInfo()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Imanghafoori\HeyMan;
4
5
use Imanghafoori\HeyMan\Situations\EloquentSituations;
6
use Imanghafoori\HeyMan\Situations\EventSituations;
7
use Imanghafoori\HeyMan\Situations\RouteSituations;
8
use Imanghafoori\HeyMan\Situations\ViewSituations;
9
10
class HeyMan
11
{
12 15
    public function turnOff(): Consider
13
    {
14 15
        return new Consider('turnOff');
15
    }
16
17 1
    public function turnOn(): Consider
18
    {
19 1
        return new Consider('turnOn');
20
    }
21
22 13
    public function forget(): Forget
23
    {
24 13
        return new Forget();
25
    }
26
27 102
    public function __call($method, $args)
28
    {
29 102
        $this->writeDebugInfo(debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2));
30
31 102
        foreach ($this->situations() as $className) {
32 102
            if (method_exists($className, $method)) {
33 102
                return app($className)->$method(...$args);
34
            }
35
        }
36
    }
37
38
    /**
39
     * @return array
40
     */
41 102
    private function situations(): array
42
    {
43
        return [
44 102
            RouteSituations::class,
45
            ViewSituations::class,
46
            EloquentSituations::class,
47
            EventSituations::class,
48
        ];
49
    }
50
51
    /**
52
     * @param $d
53
     */
54 102
    private function writeDebugInfo($d)
55
    {
56 102
        app(Chain::class)->debugInfo = array_only($d[1], ['file', 'line', 'args']);
57 102
    }
58
}
59