MenuUrlHelper   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 37
rs 10
c 0
b 0
f 0
wmc 6
lcom 0
cbo 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A __invoke() 0 12 5
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Menu\View\Helper;
6
7
use Zend\Expressive\Helper\UrlHelper;
8
use Zend\View\Helper\AbstractHelper;
9
10
class MenuUrlHelper extends AbstractHelper
11
{
12
    /**
13
     * @var UrlHelper
14
     */
15
    private $url;
16
17
    /**
18
     * MenuUrlHelper constructor.
19
     *
20
     * @param UrlHelper $url
21
     */
22
    public function __construct(UrlHelper $url)
23
    {
24
        $this->url = $url;
25
    }
26
27
    /**
28
     * Depend on given MenuItem create URL.
29
     *
30
     * @param  $menuItem
31
     *
32
     * @return string
33
     */
34
    public function __invoke($menuItem)
35
    {
36
        if ($menuItem['href']) {
37
            return strpos($menuItem['href'], 'http') === 0 ? $menuItem['href'] : '/'.$menuItem['href'];
38
        } elseif ($menuItem['page_slug']) {
39
            return $this->url->__invoke('page', ['url_slug' => $menuItem['page_slug']]);
40
        } elseif ($menuItem['category_slug']) {
41
            return $this->url->__invoke('category', ['category' => $menuItem['category_slug']]);
42
        } else {
43
            return '#';
44
        }
45
    }
46
}
47