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

HeaderCollector   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

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

5 Methods

Rating   Name   Duplication   Size   Complexity  
A collect() 0 12 2
A getWidgets() 0 8 1
A __construct() 0 3 1
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.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