AdminSidebar   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 5
c 3
b 0
f 1
lcom 1
cbo 4
dl 0
loc 57
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A build() 0 15 3
A getMenu() 0 4 1
1
<?php namespace Modules\Core\Sidebar;
2
3
use Illuminate\Contracts\Container\Container;
4
use Maatwebsite\Sidebar\Menu;
5
use Maatwebsite\Sidebar\ShouldCache;
6
use Maatwebsite\Sidebar\Sidebar;
7
use Maatwebsite\Sidebar\Traits\CacheableTrait;
8
use Pingpong\Modules\Contracts\RepositoryInterface;
9
10
class AdminSidebar implements Sidebar, ShouldCache
11
{
12
    use CacheableTrait;
13
    /**
14
     * @var Menu
15
     */
16
    protected $menu;
17
18
    /**
19
     * @var RepositoryInterface
20
     */
21
    protected $modules;
22
23
    /**
24
     * @var Container
25
     */
26
    protected $container;
27
28
    /**
29
     * @param Menu                $menu
30
     * @param RepositoryInterface $modules
31
     * @param Container           $container
32
     */
33
    public function __construct(Menu $menu, RepositoryInterface $modules, Container $container)
34
    {
35
        $this->menu = $menu;
36
        $this->modules = $modules;
37
        $this->container = $container;
38
    }
39
40
    /**
41
     * Build your sidebar implementation here
42
     */
43
    public function build()
44
    {
45
        foreach ($this->modules->enabled() as $module) {
46
            $name = studly_case($module->getName());
47
            $class = 'Modules\\' . $name . '\\Sidebar\\SidebarExtender';
48
49
            if (class_exists($class)) {
50
                $extender = $this->container->make($class);
51
52
                $this->menu->add(
53
                    $extender->extendWith($this->menu)
54
                );
55
            }
56
        }
57
    }
58
59
    /**
60
     * @return Menu
61
     */
62
    public function getMenu()
63
    {
64
        return $this->menu;
65
    }
66
}
67