GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

DebugBar   A
last analyzed

Complexity

Total Complexity 15

Size/Duplication

Total Lines 133
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 133
ccs 0
cts 54
cp 0
rs 10
c 0
b 0
f 0
wmc 15
lcom 1
cbo 6

9 Methods

Rating   Name   Duplication   Size   Complexity  
A enable() 0 8 2
A boot() 0 10 2
A doBoot() 0 3 1
A disable() 0 4 1
A addMonolog() 0 6 1
A modifyResponse() 0 8 2
A isEnabled() 0 7 2
A injectDebugBar() 0 17 2
A generateAssetsContent() 0 18 2
1
<?php
2
3
namespace Nip\DebugBar;
4
5
use DebugBar\Bridge\MonologCollector;
6
use DebugBar\DebugBar as DebugBarGeneric;
7
use Monolog\Logger as MonologLogger;
8
use Nip\DebugBar\Formatter\MonologFormatter;
9
use Nip\Http\Response\Response;
10
use Nip\Request;
11
use Psr\Http\Message\ResponseInterface;
12
use Psr\Http\Message\ServerRequestInterface;
13
14
/**
15
 * Class DebugBar
16
 * @package Nip\DebugBar
17
 */
18
abstract class DebugBar extends DebugBarGeneric
19
{
20
21
    /**
22
     * True when booted.
23
     *
24
     * @var bool
25
     */
26
    protected $booted = false;
27
28
    /**
29
     * True when enabled, false disabled an null for still unknown
30
     *
31
     * @var bool
32
     */
33
    protected $enabled = false;
34
35
36
    /**
37
     * Enable the DebugBar and boot, if not already booted.
38
     */
39
    public function enable()
40
    {
41
        $this->enabled = true;
42
43
        if (!$this->booted) {
44
            $this->boot();
45
        }
46
    }
47
48
    public function boot()
49
    {
50
        if ($this->booted) {
51
            return;
52
        }
53
54
        $this->doBoot();
55
56
        $this->booted = true;
57
    }
58
59
    public function doBoot()
60
    {
61
    }
62
63
    /**
64
     * Disable the DebugBar
65
     */
66
    public function disable()
67
    {
68
        $this->enabled = false;
69
    }
70
71
    /**
72
     * @param MonologLogger $monolog
73
     */
74
    public function addMonolog(MonologLogger $monolog)
75
    {
76
        $collector = new MonologCollector($monolog);
77
        $collector->setFormatter(new MonologFormatter());
78
        $this->addCollector($collector);
79
    }
80
81
    /**
82
     * Modify the response and inject the debugbar (or data in headers)
83
     *
84
     * @param  Request|ServerRequestInterface $request
85
     * @param  Response|ResponseInterface $response
86
     * @return Response
87
     */
88
    public function modifyResponse(Request $request, Response $response)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
89
    {
90
        if (!$this->isEnabled()) {
91
            return $response;
92
        }
93
94
        return $this->injectDebugBar($response);
95
    }
96
97
    /**
98
     * Check if the DebugBar is enabled
99
     * @return boolean
100
     */
101
    public function isEnabled()
102
    {
103
        if ($this->enabled === null) {
104
            $this->enabled = true;
105
        }
106
        return $this->enabled;
107
    }
108
109
    /**
110
     * Injects the web debug toolbar
111
     * @param Response $response
112
     */
113
    public function injectDebugBar(Response $response)
114
    {
115
        $content = $response->getContent();
116
117
        $renderer = $this->getJavascriptRenderer();
118
        $renderedContent = $this->generateAssetsContent() . $renderer->render();
119
120
        $pos = strripos($content, '</body>');
121
        if (false !== $pos) {
122
            $content = substr($content, 0, $pos) . $renderedContent . substr($content, $pos);
123
        } else {
124
            $content = $content . $renderedContent;
125
        }
126
        // Update the new content and reset the content length
127
        $response->setContent($content);
128
        $response->headers->remove('Content-Length');
129
    }
130
131
    protected function generateAssetsContent()
132
    {
133
        $renderer = $this->getJavascriptRenderer();
134
        ob_start();
135
        echo '<style>';
136
        echo $renderer->dumpCssAssets();
137
        echo '</style>';
138
        echo '<script type="text/javascript">';
139
        echo $renderer->dumpJsAssets();
140
        echo '</script>';
141
        echo '<script type="text/javascript">jQuery.noConflict(true);</script>';
142
        $content = ob_get_clean();
143
144
        if (defined('FONTS_URL')) {
145
            $content = str_replace('../fonts/', FONTS_URL, $content);
146
        }
147
        return $content;
148
    }
149
150
}
151