1 | <?php |
||
9 | class ActiveChecker |
||
10 | { |
||
11 | private $request; |
||
12 | |||
13 | private $url; |
||
14 | |||
15 | 36 | public function __construct(Request $request, UrlGenerator $url) |
|
20 | |||
21 | 34 | public function isActive($item) |
|
42 | |||
43 | 26 | protected function checkExactOrSub($url) |
|
47 | |||
48 | 30 | protected function checkExact($url) |
|
52 | |||
53 | 14 | protected function checkSub($url) |
|
57 | |||
58 | 30 | protected function checkPattern($pattern) |
|
59 | { |
||
60 | 30 | $fullUrlPattern = $this->url->to($pattern); |
|
61 | |||
62 | 30 | $fullUrl = $this->request->fullUrl(); |
|
63 | |||
64 | 30 | if (mb_substr($pattern, 0, 6) === 'regex:') { |
|
65 | 1 | $regex = mb_substr($pattern, 6); |
|
66 | |||
67 | 1 | if (preg_match($regex, $this->request->path()) == 1) { |
|
68 | 1 | return true; |
|
69 | } |
||
70 | |||
71 | return false; |
||
72 | } |
||
73 | |||
74 | 29 | return Str::is($fullUrlPattern, $fullUrl); |
|
75 | } |
||
76 | |||
77 | 8 | protected function containsActive($items) |
|
87 | |||
88 | 7 | private function isExplicitActive($active) |
|
102 | } |
||
103 |