Completed
Pull Request — dev (#19)
by Arnaud
02:49
created

MenuBuilder::mainMenu()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 14
ccs 0
cts 13
cp 0
rs 9.4285
cc 2
eloc 9
nc 2
nop 0
crap 6
1
<?php
2
3
namespace LAG\AdminBundle\Menu;
4
5
use Knp\Menu\ItemInterface;
6
use LAG\AdminBundle\Menu\Factory\MenuFactory;
7
8
/**
9
 * Create menu handled by the AdminBundle (main, top)
10
 */
11
class MenuBuilder
12
{
13
    /**
14
     * @var array
15
     */
16
    protected $menusConfiguration;
17
18
    /**
19
     * @var MenuFactory
20
     */
21
    protected $menuFactory;
22
23
    /**
24
     * MenuBuilder constructor.
25
     *
26
     * @param array $menusConfiguration
27
     * @param MenuFactory $menuFactory
28
     */
29
    public function __construct(
30
        array $menusConfiguration,
31
        MenuFactory $menuFactory
32
    ) {
33
        $this->menusConfiguration = $menusConfiguration;
34
        $this->menuFactory = $menuFactory;
35
    }
36
37
    /**
38
     * Create main menu.
39
     *
40
     * @return ItemInterface
41
     */
42
    public function mainMenu()
43
    {
44
        if (!array_key_exists('main', $this->menusConfiguration)) {
45
            $this->menusConfiguration['main'] = [];
46
        }
47
        $this->menusConfiguration['main']['attr'] = [
48
            'id' => 'side-menu',
49
            'class' => 'nav in',
50
        ];
51
52
        return $this
53
            ->menuFactory
54
            ->create('main', $this->menusConfiguration['main']);
55
    }
56
}
57