Completed
Pull Request — master (#126)
by Simon
07:45
created

HeaderCollector::getWidgets()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 6
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 8
rs 10
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.calls',
36
                'default' => '{}'
37
            ]
38
        ];
39
    }
40
41
    /**
42
     * @return array
43
     */
44
    public function collect()
45
    {
46
        $result = $this->controller->getResponse()->getHeaders();
47
48
        foreach ($result as $key => &$value) {
49
            $value = trim(implode(PHP_EOL, explode('; ', $value)));
50
            $value = implode(PHP_EOL . ' - ', explode(' ', $value));
51
        }
52
53
        return [
54
            'count' => count($result),
55
            'calls' => $result
56
        ];
57
    }
58
59
    /**
60
     * @return string
61
     */
62
    public function getName()
63
    {
64
        return 'Headers';
65
    }
66
67
    public function getAssets()
68
    {
69
        return [];
70
    }
71
}
72