HeaderCollector   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 21
c 1
b 0
f 0
dl 0
loc 64
rs 10
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getWidgets() 0 12 1
A collect() 0 12 2
A getAssets() 0 3 1
A getName() 0 3 1
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 SilverStripe\Control\Controller;
9
10
class HeaderCollector extends DataCollector implements Renderable, AssetProvider
11
{
12
    /**
13
     * @var \SilverStripe\Control\Controller;
14
     */
15
    protected $controller;
16
17
    /**
18
     * HeaderCollector constructor.
19
     * @param Controller $controller
20
     */
21
    public function __construct($controller)
22
    {
23
        $this->controller = $controller;
24
    }
25
26
    /**
27
     * @return array
28
     */
29
    public function getWidgets()
30
    {
31
        return [
32
            'Headers'       => [
33
                'icon'    => 'gear',
34
                'widget'  => 'PhpDebugBar.Widgets.VariableListWidget',
35
                'map'     => 'Headers.list',
36
                'default' => '{}'
37
            ],
38
            'Headers:badge' => [
39
                'map'     => 'Headers.count',
40
                'default' => 0
41
            ]
42
        ];
43
    }
44
45
    /**
46
     * @return array
47
     */
48
    public function collect()
49
    {
50
        $result = $this->controller->getResponse()->getHeaders();
51
52
        foreach ($result as $key => &$value) {
53
            $value = trim(implode(PHP_EOL, explode('; ', (string) $value)));
54
            $value = implode(PHP_EOL . ' - ', explode(' ', $value));
55
        }
56
57
        return [
58
            'count' => count($result),
59
            'list'  => $result
60
        ];
61
    }
62
63
    /**
64
     * @return string
65
     */
66
    public function getName()
67
    {
68
        return 'Headers';
69
    }
70
71
    public function getAssets()
72
    {
73
        return [];
74
    }
75
}
76