Completed
Pull Request — master (#60)
by Robbie
01:36
created

ConfigCollector::collect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
3
namespace LeKoala\DebugBar\Collector;
4
5
use DebugBar\DataCollector\AssetProvider;
6
use DebugBar\DataCollector\DataCollector;
7
use DebugBar\DataCollector\Renderable;
8
use LeKoala\DebugBar\DebugBar;
9
use LeKoala\DebugBar\Proxy\ConfigManifestProxy;
10
11
/**
12
 * Collects data about the config usage during a SilverStripe request
13
 */
14
class ConfigCollector extends DataCollector implements Renderable, AssetProvider
15
{
16
    public function getName()
17
    {
18
        return 'config';
19
    }
20
21
    public function collect()
22
    {
23
        $result = ConfigManifestProxy::getConfigCalls();
24
        return [
25
            'count' => count($result),
26
            'calls' => $result
27
        ];
28
    }
29
30
    public function getWidgets()
31
    {
32
        $widgets = [
33
            'config' => [
34
                'icon' => 'gear',
35
                'widget' => 'PhpDebugBar.Widgets.ConfigWidget',
36
                'map' => 'config.calls',
37
                'default' => '{}'
38
            ]
39
        ];
40
41
        if (count(ConfigManifestProxy::getConfigCalls()) > 0) {
42
            $widgets['config:badge'] = [
43
                'map' => 'config.count',
44
                'default' => 0
45
            ];
46
        }
47
48
        return $widgets;
49
    }
50
51
    public function getAssets()
52
    {
53
        $name = $this->getName();
54
55
        return [
56
            'base_path' => '/' . DEBUGBAR_DIR . '/javascript',
57
            'base_url' => DEBUGBAR_DIR . '/javascript',
58
            'css' => $name . '/widget.css',
59
            'js' => $name . '/widget.js'
60
        ];
61
    }
62
}
63