AdminMenuListener::addAdminMenuItems()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 10
nc 1
nop 1
dl 0
loc 19
rs 9.9332
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Setono\SyliusSchedulerPlugin\Menu;
6
7
use Knp\Menu\ItemInterface;
8
use Knp\Menu\Util\MenuManipulator;
9
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
10
11
final class AdminMenuListener
12
{
13
    /**
14
     * @var MenuManipulator
15
     */
16
    private $menuManipulator;
17
18
    /**
19
     * @param MenuManipulator $menuManipulator
20
     */
21
    public function __construct(MenuManipulator $menuManipulator)
22
    {
23
        $this->menuManipulator = $menuManipulator;
24
    }
25
26
    /**
27
     * @param MenuBuilderEvent $event
28
     */
29
    public function addAdminMenuItems(MenuBuilderEvent $event): void
30
    {
31
        $menu = $event->getMenu();
32
33
        /** @var ItemInterface $configurationSubmenu */
34
        $configurationSubmenu = $menu->getChild('configuration');
35
36
        $scheduleMenuItem = $configurationSubmenu
37
            ->addChild('setono_sylius_scheduler_schedules', [
38
                'route' => 'setono_sylius_scheduler_admin_schedule_index',
39
            ])
40
            ->setAttribute('type', 'link')
41
            ->setLabel('setono_sylius_scheduler.menu.admin.main.configuration.schedules')
42
            ->setLabelAttributes([
43
                'icon' => 'clone',
44
            ])
45
        ;
46
47
        $this->menuManipulator->moveToFirstPosition($scheduleMenuItem);
48
    }
49
}
50