Route::is()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
class Route extends Prefab
4
{
5
    private $app;
6
7
    public function __construct()
8
    {
9
        if ($this->app == null) {
10
            $this->app = f3();
11
        }
12
    }
13
14
    public function uri()
15
    {
16
        return $this->app['URI'];
17
    }
18
19
    public function type()
20
    {
21
        return $this->app['VERB'];
22
    }
23
24
    public function has($route)
25
    {
26
        if (str_contains($route, '/')) {
27
            return array_key_exists($route, $this->getRoutes());
28
        }
29
30
        return $this->getNamedRoute($route);
31
    }
32
33
    public function current()
34
    {
35
        return $this->app['PATH'];
36
    }
37
38
    public function is($route)
39
    {
40
        return Str::contains($this->current(), $route);
41
    }
42
43
    public function currentRouteName()
44
    {
45
        return $this->getRoutes()[$this->current()][0][$this->type()][3];
46
    }
47
48
    public function getRouteName($route)
49
    {
50
        $response = null;
51
        foreach ($this->getNamedRoutes() as $name => $url) {
52
            if ($url == $route) {
53
                $response[] = $name;
54
            }
55
        }
56
        return $response;
57
        //return array_search($this->getNamedRoutes(), $route);
58
    }
59
60
    public function getNamedRoute($route)
61
    {
62
        return array_key_exists($route, $this->getNamedRoutes());
63
    }
64
65
    public function getNamedRoutes()
66
    {
67
        return $this->app['ALIASES'];
68
    }
69
70
    public function getRoutes()
71
    {
72
        return $this->app['ROUTES'];
73
    }
74
75
    public function hasParameter($parameter)
76
    {
77
        return (bool) $this->parameter($parameter);
78
    }
79
80
    public function parameters()
81
    {
82
        return $this->app[$this->type()];
83
    }
84
85
    public function parameter($parameter)
86
    {
87
        return $this->app[$this->type().'.'.$parameter];
88
    }
89
}
90