diff --git a/src/Debugger/Debugger.php b/src/Debugger/Debugger.php index 0c28d770f..c4162707a 100644 --- a/src/Debugger/Debugger.php +++ b/src/Debugger/Debugger.php @@ -149,10 +149,14 @@ public function resetStore(): void /** * Renders the debug bar - * @throws DebugBarException + * @throws DebugBarException|DiException|ReflectionException */ public function render(): string { + if (!$this->isEnabled()) { + return ''; + } + foreach ([self::MESSAGES, self::QUERIES, self::ROUTES, self::HOOKS, self::MAILS] as $tab) { $this->createTab($tab); } diff --git a/src/Debugger/Helpers/debugger.php b/src/Debugger/Helpers/debugger.php new file mode 100644 index 000000000..4de47c79d --- /dev/null +++ b/src/Debugger/Helpers/debugger.php @@ -0,0 +1,30 @@ + + * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org) + * @link http://quantum.softberg.org/ + * @since 3.0.0 + */ + +use Quantum\Debugger\Debugger; +use Quantum\Di\Di; + +/** + * Gets the Debugger instance from DI + */ +function debugbar(): Debugger +{ + if (!Di::isRegistered(Debugger::class)) { + Di::register(Debugger::class); + } + + return Di::get(Debugger::class); +} diff --git a/src/Module/Templates/DefaultWeb/src/Views/layouts/main.php.tpl b/src/Module/Templates/DefaultWeb/src/Views/layouts/main.php.tpl index 991965844..f0353a944 100644 --- a/src/Module/Templates/DefaultWeb/src/Views/layouts/main.php.tpl +++ b/src/Module/Templates/DefaultWeb/src/Views/layouts/main.php.tpl @@ -14,7 +14,7 @@ - + = debugbar()->render() ?>
diff --git a/src/Module/Templates/DemoWeb/src/Views/layouts/main.php.tpl b/src/Module/Templates/DemoWeb/src/Views/layouts/main.php.tpl index e07c8afdd..403784376 100644 --- a/src/Module/Templates/DemoWeb/src/Views/layouts/main.php.tpl +++ b/src/Module/Templates/DemoWeb/src/Views/layouts/main.php.tpl @@ -16,7 +16,7 @@ - + = debugbar()->render() ?> diff --git a/src/Module/Templates/Toolkit/src/Views/layouts/main.php.tpl b/src/Module/Templates/Toolkit/src/Views/layouts/main.php.tpl index a3e60440d..7ac2d9c45 100644 --- a/src/Module/Templates/Toolkit/src/Views/layouts/main.php.tpl +++ b/src/Module/Templates/Toolkit/src/Views/layouts/main.php.tpl @@ -33,7 +33,7 @@ - += debugbar()->render() ?> diff --git a/src/View/Helpers/view.php b/src/View/Helpers/view.php index 6a11df00b..930bc9387 100644 --- a/src/View/Helpers/view.php +++ b/src/View/Helpers/view.php @@ -21,10 +21,7 @@ use Quantum\App\Exceptions\BaseException; use Quantum\View\Factories\ViewFactory; use Quantum\Di\Exceptions\DiException; -use DebugBar\DebugBarException; -use Quantum\Debugger\Debugger; use Quantum\View\RawParam; -use Quantum\Di\Di; /** * Rendered view @@ -67,25 +64,6 @@ function raw_param($value): RawParam return new RawParam($value); } -/** - * Rendered debug bar - * @throws DebugBarException|DiException|ReflectionException - */ -function debugbar(): ?string -{ - if (!Di::isRegistered(Debugger::class)) { - Di::register(Debugger::class); - } - - $debugger = Di::get(Debugger::class); - - if ($debugger->isEnabled()) { - return $debugger->render(); - } - - return null; -} - /** * @throws CommonMarkException */ diff --git a/tests/Unit/Debugger/DebuggerTest.php b/tests/Unit/Debugger/DebuggerTest.php index 5300c794e..ac7d0c3da 100644 --- a/tests/Unit/Debugger/DebuggerTest.php +++ b/tests/Unit/Debugger/DebuggerTest.php @@ -104,6 +104,8 @@ public function testDebuggerResetStore(): void public function testDebugbarRender(): void { + config()->set('app.debug', true); + $this->debugger->initStore(); $rendererMock = Mockery::mock('alias:' . JavascriptRenderer::class); @@ -121,4 +123,13 @@ public function testDebugbarRender(): void $this->assertStringContainsString('
', $output); $this->assertStringContainsString('
', $output); } + + public function testDebugbarRenderReturnsEmptyWhenDisabled(): void + { + config()->set('app.debug', false); + + $output = $this->debugger->render(); + + $this->assertEmpty($output); + } } diff --git a/tests/Unit/Debugger/Helpers/DebuggerHelperTest.php b/tests/Unit/Debugger/Helpers/DebuggerHelperTest.php new file mode 100644 index 000000000..db4a8b540 --- /dev/null +++ b/tests/Unit/Debugger/Helpers/DebuggerHelperTest.php @@ -0,0 +1,27 @@ +assertInstanceOf(Debugger::class, debugbar()); + } + + public function testDebugbarHelperReturnsSameInstance(): void + { + $first = debugbar(); + $second = debugbar(); + + $this->assertSame($first, $second); + } +}