Completed
Push — master ( 2d18a1...66c2ca )
by Thomas
14s queued 10s
created

HeaderCollector::collect()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 7
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 13
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.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