Skip to content

Commit afacec2

Browse files
committed
Use Clockwork Collector for request/session
1 parent 14e06bd commit afacec2

File tree

3 files changed

+111
-15
lines changed

3 files changed

+111
-15
lines changed

src/LaravelDebugbar.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use DebugBar\DataCollector\PhpInfoCollector;
2121
use DebugBar\DataCollector\RequestDataCollector;
2222
use DebugBar\DataCollector\TimeDataCollector;
23+
use Barryvdh\Debugbar\Support\Clockwork\ClockworkCollector;
2324
use DebugBar\DebugBar;
2425
use DebugBar\Storage\PdoStorage;
2526
use DebugBar\Storage\RedisStorage;
@@ -511,6 +512,23 @@ public function modifyResponse($request, $response)
511512
}
512513
}
513514

515+
if ($app['config']->get('debugbar.clockwork')) {
516+
517+
try {
518+
$this->addCollector(new ClockworkCollector($request, $response, $sessionManager));
519+
} catch (\Exception $e) {
520+
$this->addException(
521+
new Exception(
522+
'Cannot add ClockworkCollector to Laravel Debugbar: ' . $e->getMessage(),
523+
$e->getCode(),
524+
$e
525+
)
526+
);
527+
}
528+
529+
$this->addClockworkHeaders($response);
530+
}
531+
514532
if ($response->isRedirection()) {
515533
try {
516534
$this->stackData();
@@ -545,9 +563,6 @@ public function modifyResponse($request, $response)
545563
}
546564
}
547565

548-
if ($app['config']->get('debugbar.clockwork')) {
549-
$this->addClockworkHeaders($response);
550-
}
551566

552567
// Stop further rendering (on subrequests etc)
553568
$this->disable();
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?php
2+
3+
namespace Barryvdh\Debugbar\Support\Clockwork;
4+
5+
use DebugBar\DataCollector\DataCollector;
6+
use DebugBar\DataCollector\DataCollectorInterface;
7+
use DebugBar\DataCollector\Renderable;
8+
use Symfony\Component\HttpFoundation\Response;
9+
10+
/**
11+
*
12+
* Based on \Symfony\Component\HttpKernel\DataCollector\RequestDataCollector by Fabien Potencier <fabien@symfony.com>
13+
*
14+
*/
15+
class ClockworkCollector extends DataCollector implements DataCollectorInterface, Renderable
16+
{
17+
/** @var \Symfony\Component\HttpFoundation\Request $request */
18+
protected $request;
19+
/** @var \Symfony\Component\HttpFoundation\Request $response */
20+
protected $response;
21+
/** @var \Symfony\Component\HttpFoundation\Session\SessionInterface $session */
22+
protected $session;
23+
24+
/**
25+
* Create a new SymfonyRequestCollector
26+
*
27+
* @param \Symfony\Component\HttpFoundation\Request $request
28+
* @param \Symfony\Component\HttpFoundation\Request $response
29+
* @param \Symfony\Component\HttpFoundation\Session\SessionInterface $session
30+
*/
31+
public function __construct($request, $response, $session = null)
32+
{
33+
$this->request = $request;
34+
$this->response = $response;
35+
$this->session = $session;
36+
}
37+
38+
/**
39+
* {@inheritDoc}
40+
*/
41+
public function getName()
42+
{
43+
return 'clockwork';
44+
}
45+
46+
/**
47+
* {@inheritDoc}
48+
*/
49+
public function getWidgets()
50+
{
51+
return null;
52+
}
53+
54+
/**
55+
* {@inheritdoc}
56+
*/
57+
public function collect()
58+
{
59+
$request = $this->request;
60+
$response = $this->response;
61+
62+
$data = array(
63+
'getData' => $request->query->all(),
64+
'postData' => $request->request->all(),
65+
'headers' => $request->headers->all(),
66+
'cookies' => $request->cookies->all(),
67+
'uri' => $request->getRequestUri(),
68+
'method' => $request->getMethod(),
69+
'responseStatus' => $response->getStatusCode(),
70+
);
71+
72+
if ($this->session) {
73+
$sessionAttributes = array();
74+
foreach ($this->session->all() as $key => $value) {
75+
$sessionAttributes[$key] = $value;
76+
}
77+
$data['sessionData'] = $sessionAttributes;
78+
}
79+
80+
if (isset($data['postData']['php-auth-pw'])) {
81+
$data['postData']['php-auth-pw'] = '******';
82+
}
83+
84+
if (isset($data['postData']['PHP_AUTH_PW'])) {
85+
$data['postData']['PHP_AUTH_PW'] = '******';
86+
}
87+
88+
return $data;
89+
}
90+
91+
}

src/Support/Clockwork/Converter.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,8 @@ public function convert($data)
3333
'responseDuration' => 0,
3434
];
3535

36-
37-
if (isset($data['request'])) {
38-
$request = $data['request'];
39-
40-
$output['responseStatus'] = $request['status_code'];
41-
foreach($request as $key => $value){
42-
$output['headers'][$key] = [$value];
43-
}
36+
if (isset($data['clockwork'])) {
37+
$output = array_merge($output, $data['clockwork']);
4438
}
4539

4640
if (isset($data['time'])) {
@@ -123,10 +117,6 @@ public function convert($data)
123117
}
124118
}
125119

126-
if (isset($data['session'])) {
127-
$output['sessionData'] = $data['session'];
128-
}
129-
130120
return $output;
131121
}
132122

0 commit comments

Comments
 (0)