Skip to content

Commit 97014ab

Browse files
committed
Configurable
1 parent c6443eb commit 97014ab

6 files changed

+60
-20
lines changed

Diff for: composer.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"php": "^5.5 || ^7.0",
1313
"maximebf/debugbar": "^1.10",
1414
"psr/http-message": "^1.0",
15+
"container-interop/container-interop": "^1.0",
1516
"zendframework/zend-diactoros": "^1.1.3"
1617
},
1718
"require-dev": {

Diff for: config/phpdebugbar.config.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
'base_url' => '/phpdebugbar',
88
],
99
'collectors' => [],
10-
'storage' => '',
10+
'storage' => null,
1111
],
1212
],
1313
];

Diff for: src/ConfigProvider.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ public static function getConfig()
1212

1313
public function __invoke()
1414
{
15-
return [
16-
'dependencies' => include __DIR__ . '/../config/dependency.config.php',
17-
'middleware_pipeline' => include __DIR__ . '/../config/zend-expressive.middleware_pipeline.config.php',
18-
];
15+
$config = include __DIR__ . '/../config/phpdebugbar.config.php';
16+
$config['dependencies'] = include __DIR__ . '/../config/dependency.config.php';
17+
$config['middleware_pipeline'] = include __DIR__ . '/../config/zend-expressive.middleware_pipeline.config.php';
18+
19+
return $config;
1920
}
2021
}

Diff for: src/JavascriptRendererFactory.php

+22-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,34 @@
22

33
namespace PhpMiddleware\PhpDebugBar;
44

5+
use DebugBar\DebugBar;
56
use DebugBar\JavascriptRenderer;
7+
use Interop\Container\ContainerInterface;
68

79
final class JavascriptRendererFactory
810
{
9-
public function __invoke()
11+
public function __invoke(ContainerInterface $container = null)
1012
{
11-
$standardDebugBarFactory = new StandardDebugBarFactory();
12-
$debugbar = $standardDebugBarFactory();
13+
if ($container === null || !$container->has(DebugBar::class)) {
14+
$standardDebugBarFactory = new StandardDebugBarFactory();
15+
$debugbar = $standardDebugBarFactory($container);
16+
} else {
17+
$debugbar = $container->get(DebugBar::class);
18+
}
1319

14-
$renderer = new JavascriptRenderer($debugbar, '/phpdebugbar');
20+
$renderer = new JavascriptRenderer($debugbar);
21+
22+
$config = $container !== null && $container->has('config') ? $container->get('config') : [];
23+
24+
if (isset($config['phpmiddleware']['phpdebugbar']['javascript_renderer'])) {
25+
$rendererOptions = $config['phpmiddleware']['phpdebugbar']['javascript_renderer'];
26+
} else {
27+
$rendererOptions = [
28+
'base_url' => '/phpdebugbar',
29+
];
30+
}
31+
32+
$renderer->setOptions($rendererOptions);
1533

1634
return $renderer;
1735
}

Diff for: src/PhpDebugBarMiddlewareFactory.php

+10-9
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@
22

33
namespace PhpMiddleware\PhpDebugBar;
44

5-
/**
6-
* Default, simple factory for middleware
7-
*
8-
* @author Witold Wasiczko <[email protected]>
9-
*/
5+
use DebugBar\JavascriptRenderer;
6+
use Interop\Container\ContainerInterface;
7+
108
final class PhpDebugBarMiddlewareFactory
119
{
12-
public function __invoke()
10+
public function __invoke(ContainerInterface $container = null)
1311
{
14-
$rendererFactory = new JavascriptRendererFactory();
15-
$renderer = $rendererFactory();
16-
12+
if ($container === null || !$container->has(JavascriptRenderer::class)) {
13+
$rendererFactory = new JavascriptRendererFactory();
14+
$renderer = $rendererFactory($container);
15+
} else {
16+
$renderer = $container->get(JavascriptRenderer::class);
17+
}
1718
return new PhpDebugBarMiddleware($renderer);
1819
}
1920
}

Diff for: src/StandardDebugBarFactory.php

+21-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,30 @@
33
namespace PhpMiddleware\PhpDebugBar;
44

55
use DebugBar\StandardDebugBar;
6+
use Interop\Container\ContainerInterface;
67

78
final class StandardDebugBarFactory
89
{
9-
public function __invoke()
10+
public function __invoke(ContainerInterface $container = null)
1011
{
11-
return new StandardDebugBar();
12+
$debugBar = new StandardDebugBar();
13+
14+
if ($container !== null) {
15+
$config = $container->has('config') ? $container->get('config') : [];
16+
17+
$collectors = isset($config['phpmiddleware']['phpdebugbar']['collectors']) ? $config['phpmiddleware']['phpdebugbar']['collectors'] : [];
18+
19+
foreach ($collectors as $collectorName) {
20+
$collector = $container->get($collectorName);
21+
$debugBar->addCollector($collector);
22+
}
23+
24+
if (isset($config['phpmiddleware']['phpdebugbar']['storage']) && is_string($config['phpmiddleware']['phpdebugbar']['storage'])) {
25+
$storage = $container->get($config['phpmiddleware']['phpdebugbar']['storage']);
26+
$debugBar->setStorage($config['phpmiddleware']['phpdebugbar']['storage']);
27+
}
28+
}
29+
30+
return $debugBar;
1231
}
1332
}

0 commit comments

Comments
 (0)