Completed
Pull Request — development (#695)
by Nick
11:34 queued 06:42
created

MenuSubscriber   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 3
lcom 0
cbo 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getSubscribedEvents() 0 7 1
A onConfigureMenuMain() 0 13 1
A onConfigureMenuMainAccount() 0 20 1
1
<?php
2
3
namespace Oc\Account\Subscriber;
4
5
use Oc\Menu\Event\MenuEvent;
6
use Oc\Menu\MenuEnum;
7
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
8
9
/**
10
 * Class MenuSubscriber
11
 *
12
 * @package Oc\Account\Subscriber
13
 */
14
class MenuSubscriber implements EventSubscriberInterface
15
{
16
    /**
17
     * Returns an array of event names this subscriber wants to listen to.
18
     *
19
     * @return array The event names to listen to
20
     */
21
    public static function getSubscribedEvents()
22
    {
23
        return [
24
            MenuEnum::MENU_MAIN => ['onConfigureMenuMain', 1],
25
            MenuEnum::MENU_MAIN_ACCOUNT => ['onConfigureMenuMainAccount', 0]
26
        ];
27
    }
28
29
    /**
30
     * @param MenuEvent $event
31
     */
32
    public function onConfigureMenuMain(MenuEvent $event)
33
    {
34
        $accountItem = $event->getCurrentItem()->addChild('account', [
35
            'label' => 'Benutzerkonto'
36
        ]);
37
38
        $accountEvent = $event->createSubEvent($accountItem);
39
40
        $event->getEventDispatcher()->dispatch(
41
            MenuEnum::MENU_MAIN_ACCOUNT,
42
            $accountEvent
43
        );
44
    }
45
46
    /**
47
     * @param MenuEvent $event
48
     */
49
    public function onConfigureMenuMainAccount(MenuEvent $event)
50
    {
51
        $currentItem = $event->getCurrentItem();
52
53
        $currentItem->addChild('profile', [
54
            'label' => 'Mein Profil'
55
        ]);
56
57
        $currentItem->addChild('statistics', [
58
            'label' => 'Statistik'
59
        ]);
60
61
        $currentItem->addChild('contacts', [
62
            'label' => 'Kontakte'
63
        ]);
64
65
        $currentItem->addChild('settings', [
66
            'label' => 'Einstellungen'
67
        ]);
68
    }
69
}
70