Completed
Pull Request — master (#126)
by Simon
02:40
created

HeaderCollector   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Importance

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

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getAssets() 0 3 1
A getName() 0 3 1
A collect() 0 13 2
A getWidgets() 0 12 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
51
        $result = $this->controller->getResponse()->getHeaders();
52
53
        foreach ($result as $key => &$value) {
54
            $value = trim(implode(PHP_EOL, explode('; ', $value)));
55
            $value = implode(PHP_EOL . ' - ', explode(' ', $value));
56
        }
57
58
        return [
59
            'count' => count($result),
60
            'list'  => $result
61
        ];
62
    }
63
64
    /**
65
     * @return string
66
     */
67
    public function getName()
68
    {
69
        return 'Headers';
70
    }
71
72
    public function getAssets()
73
    {
74
        return [];
75
    }
76
}
77