Skip to content

Commit 92df49f

Browse files
committed
Show more request info
1 parent 44163a9 commit 92df49f

File tree

9 files changed

+160
-5
lines changed

9 files changed

+160
-5
lines changed

DataCollector/MagentoCollector.php

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use DebugBar\DataCollector\DataCollector;
66
use DebugBar\DataCollector\Renderable;
7+
use Magento\Framework\App\State;
78
use Magento\Framework\AppInterface;
89
use Magento\Framework\Locale\ResolverInterface;
910
use Magento\Framework\App\ProductMetadataInterface;
@@ -16,16 +17,21 @@ class MagentoCollector extends DataCollector implements Renderable
1617
/** @var ResolverInterface */
1718
protected $resolver;
1819

20+
/** @var State */
21+
protected $state;
22+
1923
/**
2024
* @param ProductMetadataInterface $productMetadata
2125
* @param ResolverInterface $localeResolver
2226
*/
2327
public function __construct(
2428
ProductMetadataInterface $productMetadata,
25-
ResolverInterface $localeResolver
29+
ResolverInterface $localeResolver,
30+
State $state
2631
) {
2732
$this->productMetadata = $productMetadata;
2833
$this->resolver = $localeResolver;
34+
$this->state = $state;
2935
}
3036

3137
/**
@@ -36,6 +42,13 @@ public function collect()
3642
return array(
3743
"version" => $this->productMetadata->getVersion(),
3844
"locale" => $this->resolver->getLocale(),
45+
'tooltip' => [
46+
'PHP Version' => phpversion(),
47+
'Magento Version' => $this->productMetadata->getVersion(),
48+
'Mode' => $this->state->getMode(),
49+
'Area' => $this->state->getAreaCode(),
50+
'Locale' => $this->resolver->getLocale(),
51+
]
3952
);
4053
}
4154

@@ -59,6 +72,10 @@ public function getWidgets()
5972
"map" => "magento.version",
6073
"default" => ""
6174
),
75+
"version:tooltip" => [
76+
"map" => "magento.tooltip",
77+
"default" => "{}"
78+
],
6279
"locale" => array(
6380
"icon" => "flag",
6481
"tooltip" => "Current locale",
@@ -67,4 +84,4 @@ public function getWidgets()
6784
),
6885
);
6986
}
70-
}
87+
}

DataCollector/RequestCollector.php

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?php
2+
3+
namespace Fruitcake\MagentoDebugbar\DataCollector;
4+
5+
use DebugBar\DataCollector\DataCollector;
6+
use DebugBar\DataCollector\DataCollectorInterface;
7+
use DebugBar\DataCollector\Renderable;
8+
use Magento\Framework\App\Request\Http;
9+
10+
class RequestCollector extends DataCollector implements DataCollectorInterface, Renderable
11+
{
12+
/** @var Http $request */
13+
protected $request;
14+
15+
/**
16+
* Create a new SymfonyRequestCollector
17+
*
18+
* @param Http $request
19+
*/
20+
public function __construct(Http $request)
21+
{
22+
$this->request = $request;
23+
}
24+
25+
/**
26+
* {@inheritDoc}
27+
*/
28+
public function getName()
29+
{
30+
return 'request';
31+
}
32+
33+
/**
34+
* {@inheritDoc}
35+
*/
36+
public function getWidgets()
37+
{
38+
$widgets = [
39+
"request" => [
40+
"icon" => "tags",
41+
"widget" => "PhpDebugBar.Widgets.HtmlVariableListWidget",
42+
"map" => "request.data",
43+
"default" => "{}"
44+
]
45+
];
46+
47+
$widgets['currentrequest'] = [
48+
"icon" => "share",
49+
"map" => "request.data.fullAction",
50+
"link" => "request",
51+
"default" => ""
52+
];
53+
$widgets['currentrequest:tooltip'] = [
54+
"map" => "request.tooltip",
55+
"default" => "{}"
56+
];
57+
58+
return $widgets;
59+
}
60+
61+
/**
62+
* {@inheritdoc}
63+
*/
64+
public function collect()
65+
{
66+
$request = $this->request;
67+
68+
$data = [
69+
'path' => $request->getPathInfo(),
70+
'baseUrl' => $request->getDistroBaseUrl(),
71+
'module' => $request->getModuleName(),
72+
'controller' => $request->getControllerModule(),
73+
'action' => $request->getActionName(),
74+
'fullAction' => $request->getFullActionName(),
75+
'route' => $request->getRouteName(),
76+
];
77+
78+
79+
$tooltip = [
80+
'path' => $data['path'],
81+
'module' => $data['module'],
82+
'fullAction' => $data['fullAction'],
83+
];
84+
85+
return [
86+
'data' => $data,
87+
'tooltip' => array_filter($tooltip)
88+
];
89+
}
90+
91+
}

JavascriptRenderer.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class JavascriptRenderer extends BaseJavascriptRenderer
99
{
1010
/** @var UrlInterface */
1111
protected $url;
12+
protected $ajaxHandlerAutoShow = false;
13+
protected $ajaxHandlerEnableTab = true;
1214

1315
public function __construct(MagentoDebugbar $debugBar, UrlInterface $url)
1416
{
@@ -47,4 +49,4 @@ protected function getAssetsHash($type)
4749
}
4850
return md5(serialize($assets));
4951
}
50-
}
52+
}

MagentoDebugbar.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Fruitcake\MagentoDebugbar\DataCollector\MessagesCollector;
88
use Fruitcake\MagentoDebugbar\Provider\StateProvider;
99
use Fruitcake\MagentoDebugbar\Storage\FilesystemStorage;
10+
use Fruitcake\MagentoDebugbar\Storage\RequestIdGenerator;
1011
use Magento\Framework\UrlInterface;
1112
use Magento\Framework\Controller\Result\Json;
1213
use Magento\Framework\App\Request\Http as HttpRequest;
@@ -39,12 +40,14 @@ public function __construct(
3940
UrlInterface $url,
4041
FilesystemStorage $storage,
4142
StateProvider $state,
42-
State $appState
43+
State $appState,
44+
RequestIdGenerator $requestIdGenerator
4345
) {
4446
$this->url = $url;
4547
$this->state = $state;
4648
$this->appState = $appState;
4749
$this->setStorage($storage);
50+
$this->setRequestIdGenerator($requestIdGenerator);
4851
}
4952

5053
/**
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Fruitcake\MagentoDebugbar\Plugin;
4+
5+
use Fruitcake\MagentoDebugbar\DataCollector\MagentoCollector;
6+
use Fruitcake\MagentoDebugbar\DataCollector\RequestCollector;
7+
use Fruitcake\MagentoDebugbar\MagentoDebugbar;
8+
9+
/**
10+
* Adds the Magento collector
11+
*
12+
*/
13+
class AddRequestCollectorPlugin extends AbstractAddCollectorPlugin
14+
{
15+
public function __construct(MagentoDebugbar $debugbar, RequestCollector $collector)
16+
{
17+
parent::__construct($debugbar, $collector);
18+
}
19+
}

Provider/StateProvider.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function isDebugbarEnabled()
5252
*/
5353
public function shouldDebugbarRun()
5454
{
55-
return $this->isDebugbarEnabled() && ! $this->isInternalDebugbarRequest();
55+
return $this->isDebugbarEnabled() && ! $this->isInternalDebugbarRequest() && ! $this->isSystemRequest();
5656
}
5757

5858
/**
@@ -92,6 +92,17 @@ public function isAjaxRequest()
9292
return $this->request->isAjax();
9393
}
9494

95+
/**
96+
* Ignore requests from system or other tools
97+
*
98+
* @return bool
99+
*/
100+
public function isSystemRequest()
101+
{
102+
// TODO check which we can ignore
103+
return in_array($this->request->getModuleName(), []);
104+
}
105+
95106
/**
96107
* Check if the current request is an internal Debugbar request.
97108
*

etc/adminhtml/system.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@
5454
<field id="dev/debugbar/enabled">1</field>
5555
</depends>
5656
</field>
57+
<field id="request_collector" type="select" sortOrder="120" showInDefault="1" showInWebsite="1" showInStore="1">
58+
<label>Request Collector</label>
59+
<source_model>Magento\Config\Model\Config\Source\Enabledisable</source_model>
60+
<comment>Shows Request info</comment>
61+
<depends>
62+
<field id="dev/debugbar/enabled">1</field>
63+
</depends>
64+
</field>
5765
</group>
5866
</section>
5967
</system>

etc/config.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<time_collector>1</time_collector>
1111
<event_collector>1</event_collector>
1212
<queries_collector>1</queries_collector>
13+
<request_collector>1</request_collector>
1314
</debugbar>
1415
</dev>
1516
</default>

etc/di.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<plugin name="Fruitcake\MagentoDebugbar\Plugin\AddEventCollectorPlugin"
2020
type="Fruitcake\MagentoDebugbar\Plugin\AddEventCollectorPlugin"
2121
sortOrder="140" />
22+
<plugin name="Fruitcake\MagentoDebugbar\Plugin\AddRequestCollectorPlugin"
23+
type="Fruitcake\MagentoDebugbar\Plugin\AddRequestCollectorPlugin"
24+
sortOrder="150" />
2225
</type>
2326

2427
</config>

0 commit comments

Comments
 (0)